我试图在jQuery中读取json字符串映射。我尝试了以下方式,但得到了:
无效的操作数错误
感谢任何帮助。
var data = '{"Category1":["A","B","C"],"Category2":["P","Q","R"]}';
$.each(data, function(k,v) {
console.log(k + " " + v);
$.each(v, function(item) {
console.log(k + "-" + item);
}
});
期望Category1 - A,Category1 - B ......
答案 0 :(得分:0)
使用JSON.parse解析json字符串。 请尝试以下代码 -
var data='{"Category1":["A","B","C"],"Category2":["P","Q","R"]}';
//use JSON.parse to parse a JSON string
$.each(JSON.parse(data), function( k,v) {
console.log(k +" "+v);
$.each(v, function(item) {
console.log(k +"-"+item);
});//here you missed closing bracket
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
答案 1 :(得分:0)
使用v[item]
,因为你必须按索引获取数组项目。
var data={"Category1":["A","B","C"],"Category2":["P","Q","R"]};
$.each(data, function( k,v) {
console.log(k +" "+v);
$.each(v, function(item) {
console.log(k +"-"+v[item]);
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
答案 2 :(得分:0)
@abpatil回答几乎没有变化,这正是你想要的。
var data='{"Category1":["A","B","C"],"Category2":["P","Q","R"]}';
$.each(JSON.parse(data), function (k, v) {
console.log(k + " "+ v);
$.each(v, function (i, data) {
console.log(k + ' - ', data);
})
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
希望有所帮助!