/ / як проаналізувати рядок json та повторити json-об'єкт - javascript, jquery, json

Як проаналізувати рядок json та ітерації json - javascript, jquery, json

Я зробив запит ajax на сервер і повернувсявідповідь від як json string.when я йду на JSON.stringify, він має багато пробілу у відповідь. коли я намагаюся проаналізувати об'єкт json отримав помилку messgae SyntaxError: JSON.parse: несподіваний символ у рядку 1, стовпець 1 даних JSON.

Нижче наведено код зразка:

$.post("http://example.com/index.cfm?fuseaction=shopping.admin&stamps=getStampsRates&Order_No="+order_id+"&stamps_service_type="+selectedServiceType+"",function(data,status)
{
if(status=="success")
{
var data=JSON.parse(data);
//original resonse aspected  from server
//   var json ="[{"PACKAGETYPE":"Postcard","AMOUNT":0.34},{"PACKAGETYPE":"Letter","AMOUNT":0.48},{"PACKAGETYPE":"Large Envelope or Flat","AMOUNT":0.98},{"PACKAGETYPE":"Thick Envelope","AMOUNT":1.93},{"PACKAGETYPE":"Package","AMOUNT":1.93},{"PACKAGETYPE":"Large Package","AMOUNT":1.93}] ";
$.each(data, function(idx, obj) {
alert(obj.PACKAGETYPE);
});
}
});

Я зробив кілька змін, а потім спробував проаналізувати:

var data=JSON.stringify(data);
var newJ= JSON.parse(data);
alert("newJ:"+JSON.stringify(newJ));

та отримання наступного резонансу:

 "rnrntrn[{"PACKAGETYPE":"Large Envelope or Flat","AMOUNT":2.69},{"PACKAGETYPE":"Thick Envelope","AMOUNT":2.69},{"PACKAGETYPE":"Package","AMOUNT":2.69},{"PACKAGETYPE":"Large Package","AMOUNT":2.69}]rntrnrn"

І спробуйте виконати ітерацію над помилкою отримання об'єкта json Помилка типу: t не визначено.

Будь ласка, допоможіть мені вирішити вищезазначену проблему.

Дякую

Відповіді:

1 для відповіді № 1

Я думаю, що ваше питання може бути складним.По-перше, в одному і тому ж обсязі у вас є два "дані", які можуть замінити вихідну відповідь через проблему з посиланнями. Інший, як сказав @adeneo, json був неправильно сформований з боку сервера. Тож спробуйте змінити це. Я створив JSFiddle для синтаксичного аналізу обох версій ваших відповідей JSON, оскільки ми не впевнені, як саме виглядає відповідь даних на основі вашого повідомлення.

Зразок коду тут JSFiddle

var json ="[{"PACKAGETYPE":"Postcard","AMOUNT":0.34},{"PACKAGETYPE":"Letter","AMOUNT":0.48},{"PACKAGETYPE":"Large Envelope or Flat","AMOUNT":0.98},{"PACKAGETYPE":"Thick Envelope","AMOUNT":1.93},{"PACKAGETYPE":"Package","AMOUNT":1.93},{"PACKAGETYPE":"Large Package","AMOUNT":1.93}]";

var json1 = ""rnrntrn[{"PACKAGETYPE":"Large Envelope or Flat","AMOUNT":2.69},{"PACKAGETYPE":"Thick Envelope","AMOUNT":2.69},{"PACKAGETYPE":"Package","AMOUNT":2.69},{"PACKAGETYPE":"Large Package","AMOUNT":2.69}]rntrnrn""

var obj = JSON.parse(json);
$.each(obj, function(i, item) {
console.log(obj[i].PACKAGETYPE);
});

json1 = json1.split("[")[1].split("]")[0].replace("\","");
json1 = "[" + json1 + "]";
console.log(json1);
var obj = JSON.parse(json1);
$.each(obj, function(i, item) {
console.log(obj[i].PACKAGETYPE);
});