2016-10-27 38 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 –