在jquery中读取json map字符串

时间:2016-10-27 10:33:25

标签: jquery arrays json each

我试图在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 ......

3 个答案:

答案 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],因为你必须按索引获取数组项目。

&#13;
&#13;
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;
&#13;
&#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>

希望有所帮助!