javascript - 解析时Json值错误

标签 javascript jquery json

我有一个以下 Json,想要打印键和值。

我们收到的数据为

{\"dcFlag\":null,\"code\":null,\"packageQuantity\":null,\"analgesicTax\":false,\"shelfTicketName\":null,\"productType\":null,\"itemSizeValue\":null,\"unit\":null,\"unitPriceRequired\":false,\"unitPriceMeasure\":null,\"unitPriceDisplay\":null,\"itemSizeUOM\":null,\"australiaMadeGrown\":null,\"departmentCat\":null,\"categoryCat\":null,\"commodityCat\":null,\"subCommodityCat\":null,\"selectedUnit\":null,\"toConsumer\":true,\"toRetailer\":true,\"taxName\":\"1\",\"taxRate\":null,\"countryOfOrigin\":null}"

JSON.parse之后数据被转换为

{"dcFlag":null,"code":null,"packageQuantity":null,"analgesicTax":false,"shelfTicketName":null,"productType":null,"itemSizeValue":null,"unit":null,"unitPriceRequired":false,"unitPriceMeasure":null,"unitPriceDisplay":null,"itemSizeUOM":null,"australiaMadeGrown":null,"departmentCat":null,"categoryCat":null,"commodityCat":null,"subCommodityCat":null,"selectedUnit":null,"toConsumer":true,"toRetailer":true,"taxName":"1","taxRate":null,"countryOfOrigin":null}

我试过了

 var obj = JSON.parse(result);
                    console.log(obj);
                    $.each(obj, function(k, v) {
                        //display the key and value pair
                        console.log(k + ' is ' + v);
                    });

它抛出一个错误

Uncaught TypeError: Cannot use 'in' operator to search for '455' in 

有什么意见吗? 感谢您的帮助。

最佳答案

不要使用parse,因为结果已经被解析。

var obj = {"dcFlag":null,"code":null,"packageQuantity":null,"analgesicTax":false,"shelfTicketName":null,"productType":null,"itemSizeValue":null,"unit":null,"unitPriceRequired":false,"unitPriceMeasure":null,"unitPriceDisplay":null,"itemSizeUOM":null,"australiaMadeGrown":null,"departmentCat":null,"categoryCat":null,"commodityCat":null,"subCommodityCat":null,"selectedUnit":null,"toConsumer":true,"toRetailer":true,"taxName":"1","taxRate":null,"countryOfOrigin":null};
$.each(obj, function(k, v) {
    //display the key and value pair
    console.log(k + ' is ' + v);
});
console.log(obj);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

如果结果包含反斜杠那么它工作正常:

var result = '{\"dcFlag\":null,\"code\":null,\"packageQuantity\":null,\"analgesicTax\":false,\"shelfTicketName\":null,\"productType\":null,\"itemSizeValue\":null,\"unit\":null,\"unitPriceRequired\":false,\"unitPriceMeasure\":null,\"unitPriceDisplay\":null,\"itemSizeUOM\":null,\"australiaMadeGrown\":null,\"departmentCat\":null,\"categoryCat\":null,\"commodityCat\":null,\"subCommodityCat\":null,\"selectedUnit\":null,\"toConsumer\":true,\"toRetailer\":true,\"taxName\":\"1\",\"taxRate\":null,\"countryOfOrigin\":null}"';
debugger;
result=result.slice('0','-1');
  
var obj = JSON.parse(result); 
$.each(obj, function(k, v) { 
//display the key and value pair 
console.log(k + ' is ' + v); 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

关于javascript - 解析时Json值错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48686894/

相关文章:

jquery - 鼠标悬停在覆盖的 DIV 上

javascript - 获取表中除第一列之外的所有输入值

javascript - jQuery 的 one() 函数杀死了一切

javascript - 使用 JS 和 html5 从字符串创建文本文件

javascript - 通过 css 去除所有悬停效果

javascript - 在 Angular2 路由器导出中加载外部 URL

javascript - 从自动完成插件的 JSON 数组中获取额外参数

c# - 匿名类型的单元测试 - JSON

java - 使用 Jackson 解析具有多个对象的 json 文件

javascript - 如何让 Discord Bot 跳过删除包含 *DD 的消息