我无法使用Javascript使用JSON进行解析

I can't parse using JSON using Javascript

本文关键字:JSON 使用 Javascript      更新时间:2023-09-26

我已经阅读了这篇文章,但我仍然不知道发生了什么。

根据大多数 JSON 在线数据检查器,我的 var"文本"是有效的,但是当我执行解析时,它不会做任何事情。

下面是一个示例代码:

<!DOCTYPE html>
<html>
<body>
<h2>Create Object from JSON String</h2>
<p id="demo"></p>
<script>
var text = '{
"zipcodes": [
    {
        "zip": "22312",
        "city": "Alexandria",
        "state": "VA"
    },
    {
        "zip": "22030",
        "city": "Fairfax",
        "state": "VA"
    },
    {
        "zip": "22301",
        "city": "Tyson's Corner",
        "state": "VA"
    },
    {
        "zip": "20148",
        "city": "Ashburn",
        "state": "VA"
    }
]}';
obj = JSON.parse(text);
document.getElementById("demo").innerHTML =
obj.zipcodes[1].zip + " " + obj.zipcodes[1].city;
</script>
</body>
</html>

您有两个问题:

  1. JavaScript 不支持多行字符串,而不用延续符标记每一行(通过行尾的 ')。我已经在我的示例中完成了此操作,但是将 JSON 包含在一行中确实更容易。

  2. 您对字符串使用单引号,但字符串包含未转义的'。逃脱它,你没事。

var text = '{ '
  "zipcodes": ['
    { '
      "zip": "22312", '
      "city": "Alexandria", '
      "state": "VA" '
    }, '
    { '
      "zip": "22030", '
      "city": "Fairfax", '
      "state": "VA" '
    }, '
    { '
      "zip": "22301", '
      "city": "Tyson''s Corner", '
      "state": "VA" '
    }, '
    { '
      "zip": "20148", '
      "city": "Ashburn", '
      "state": "VA" '
    } '
  ]}';
obj = JSON.parse(text);
document.getElementById("demo").innerHTML =
obj.zipcodes[1].zip + " " + obj.zipcodes[1].city;
<div id='demo'></div>

您必须将 json 放在一行上并转义您的 '.

《泰森的角落》

http://jsbin.com/xumiba/1/edit?html,js,console,output

var text = '{ "zipcodes": [ { "zip": "22312", "city": "Alexandria", "state": "VA" }, { "zip": "22030", "city": "Fairfax", "state": "VA" }, { "zip": "22301", "city": "Tyson''s Corner", "state": "VA" }, { "zip": "20148", "city":"Ashburn", "state": "VA" }]}';
您需要

在每个字符串新行的末尾添加''并转义'字符。像这样的事情可以:

var text = '{'
"zipcodes": ['
    {'
        "zip": "22312",'
        "city": "Alexandria",'
        "state": "VA"'
    },'
    {'
        "zip": "22030",'
        "city": "Fairfax",'
        "state": "VA"'
    },'
    {'
        "zip": "22301",'
        "city": "Tyson''s Corner",'
        "state": "VA"'
    },'
    {'
        "zip": "20148",'
        "city": "Ashburn",'
        "state": "VA"'
    }'
]}';
obj = JSON.parse(text);
console.log(obj.zipcodes[1].zip + " " + obj.zipcodes[1].city);
document.getElementById("demo").innerHTML =
obj.zipcodes[1].zip + " " + obj.zipcodes[1].city;

这是一个jsfiddle链接:

http://jsfiddle.net/0retway7/