在 jquery 中读取 json 映射字符串

Read json map string in jquery

我正在尝试读取 jQuery 中的 json 字符串映射。我尝试了以下方法但得到:

Invalid operand a error

感谢任何帮助。

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,类别 1 - B ...

使用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>

使用 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>

@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>

希望对您有所帮助!