【问题标题】:Parse JSON array in JavaScript into several Variables将 JavaScript 中的 JSON 数组解析为多个变量
【发布时间】:2013-10-22 07:13:37
【问题描述】:

我在下面有一个 JSON 字符串,它在 JavaScript 中存储为 var。我正在尝试将字符串的片段解析为变量。

特别是,我需要地址、邮政编码、地区和地区。

这个 JSON 数组被存储为一个名为“data”的 JS var

有谁知道我如何开始解析这些东西?谢谢大家!

[{"address":"2801 Elliott Ave","category_ids":[347],"category_labels":[["Social","Food and 
Dining","Restaurants"]],"country":"us","email":"kimd@thedussingroup.com","factual_id":"43cfe23
8-ae8e-469a-8592-a1edc8603051","fax":"(206) 448-
9252","latitude":47.615154,"locality":"Seattle","longitude":-122.353724,"name":"The Old 
Spaghetti Factory","neighborhood":["Belltown","Downtown","Downtown 
Seattle"],"postcode":"98121","region":"WA","tel":"(206) 441-
7724","website":"http:\/\/www.osf.com"}]

感谢您的帮助!

【问题讨论】:

标签: javascript arrays json


【解决方案1】:

你的 JSON 是一个数组(因为它包含在 [] 中),所以你需要:

var data = JSON.parse('[{"addre....}]');
var address = data[0].address,
    postcode = data[0].postcode;

等等……

【讨论】:

    【解决方案2】:
    for(var i in data[0]){
        window[i] = data[0][i];
    }
    
    alert(address);
    

    【讨论】:

    • 你应该写一两句话,并包含一个 JSON 解析语句,以使这个答案更清楚。但我相信这就是提问者想要的。
    • 我认为用户已经解析了JSON,而且解析JSON是一个基本动作,所以我认为没有必要。
    • 用户说,他直接将JSON字符串分配给一个var,这不是建议的方式,也不是使用eval语句。使用原生 JSON.parse 或 douglascrockford 的 json.js 解析器的正确方法,它是用 javascript 编写的,被广泛接受并被视为标准。
    • “这个 JSON 数组被存储为一个名为“data”的 JS var - 数组,而不是字符串。也许他用错了词......
    • 很明显,用户没有使用一致的语言,因为你可以看到“我有一个 JSON 字符串”,所以不需要争论。
    【解决方案3】:

    您可以使用 JSON.parse

    来做到这一点
    var data= your json;
    JSON.parse(data);
    

    更新: 在你的情况下,你甚至不需要解析你可以直接使用像

    console.log(data[0].address); //returns 2801 Elliott Ave 
    console.log(data[0].category_ids); //returns [347] 
    

    查看JSFiddle

    【讨论】:

    • 谢谢!你介意举个例子吗?同时,我将查找 JSON.parse 的用法。谢谢!
    • @user2905222 不用解析,试试这样console.log(data[0].address);
    猜你喜欢
    • 2011-07-02
    • 2019-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 2011-11-02
    • 2022-11-23
    • 1970-01-01
    相关资源
    最近更新 更多