如何解析json字符串并迭代json对象

萨梅克·米什拉(Sameek Mishra)

我向服务器发出ajax请求并从json字符串获取响应。当我使用JSON.stringify时,它的响应中有很多空白。当我尝试解析json对象时收到错误信息gastaxe SyntaxError:JSON.parse: JSON数据的第1行第1列出现意外字符

下面是示例代码:

$.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));

并引起以下共鸣:

 "\r\n\r\n\t\r\n[{\"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}]\r\n\t\r\n\r\n"

并尝试在json对象上方进行迭代,得到错误TypeError:t未定义

请帮助我解决以上问题。

谢谢

显示名称

我认为您的问题可能很复杂。首先,在同一范围内,您有两个“数据”,由于引用问题,它们可能会覆盖原始响应。另一个,如@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 = '"\r\n\r\n\t\r\n[{\"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}]\r\n\t\r\n\r\n"'

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);
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何解析此JSON对象/字符串?

如何解析字符串或对象的 JSON 数组?

如何解析以字符'u'开头的JSON字符串

如何解析在JSON中以字符串形式发送的POINT对象?

如何解析以逗号分隔但不包含在数组中的json对象字符串

如何解析JSON字符串以构造

我如何解析类似于JSON的字符串?

如何解析气流模板中的json字符串

如何解析以字符串形式接收的json数据

如何解析字符串数组的JSON

我如何解析javascript中的json字符串

如何解析包含函数的JSON字符串?

如何解析 HTML JSON 字符串

Flutter:如何解析字符串化的 Json

Google Places api返回一个字符串,如何解析为JSON对象?

如何解析具有混合字符串和数字的 JSON 对象的一部分?

如何解析包含表示JSON的字符串属性的JSON

如果对象以空字符串而不是空结构返回,如何解组json对象

如何从字符串行解析json对象?

如何解析嵌套列表的JSON字符串以在pyspark中触发数据帧?

空手道如何解析字符串化的json响应

如何解析内部JSON字符串作为嵌套类使用改装

Java:如何解析带有大括号的json字符串

如何解析传递给MVC控制器的null json字符串?

如何解析从Google图片搜索API返回的JSON字符串?

如何解析ajax返回上的字符串的JSON列表?

如何解析字符串化的 JSON 字段并使用 react-admin 呈现结果

如何从HttpClient解析JSON字符串?

如何从URL解析Json字符串