【问题标题】:Read json map string in jquery在 jquery 中读取 json 映射字符串
【发布时间】:2017-03-10 00:08:30
【问题描述】:

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

【问题讨论】:

  • var 数据是字符串而不是对象..
  • 您的 data 变量是要使用的字符串 $.each 您应该将字符串转换为 JSON 使用 JSON.parse

标签: jquery arrays json each


【解决方案1】:

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

希望有帮助!

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-10-09
        • 1970-01-01
        • 2017-11-25
        • 1970-01-01
        • 2013-06-15
        • 2016-12-09
        • 2020-02-23
        • 1970-01-01
        相关资源
        最近更新 更多