2016-10-27 28 views
0

我想在jQuery中读取json字符串映射。我尝试以下方法,但得到:在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); 
    } 
}); 

期待组别1 - A,组别 - B ...

+0

var data is string not object .. – kamesh

+0

您的'data'变量是使用'$ .each'的字符串,您应该将字符串转换为JSON使用'JSON.parse' –

回答

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>

希望帮助!

+0

谢谢Satendra,它按预期工作。 –

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>

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]); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+0

谢谢Sunrays,它按预期工作。 –

+0

如果你满意,请投我更多的业力。 :D –