将JSON字符串转换为JavaScript数组

将JSON字符串转换为JavaScript数组,javascript,json,Javascript,Json,我有大量(235个)JSON字符串,如下所示: "57": { "ID": 6986, "Town": "Paris", "latitude": 48.8829447, "longitude": 2.3453532999999 }, "58": { "ID": 6987, "Town": "Paris", "latitude": 48.8749566, "longitude": 2.3588815000001 } 我想制作一个Ja

我有大量(235个)JSON字符串,如下所示:

"57": {
    "ID": 6986,
    "Town": "Paris",
    "latitude": 48.8829447,
    "longitude": 2.3453532999999
},
"58": {
    "ID": 6987,
    "Town": "Paris",
    "latitude": 48.8749566,
    "longitude": 2.3588815000001
}

我想制作一个JavaScript数组。我在网上读过很多关于这件事的帖子,但它们似乎都不适合我的情况。我该怎么办?

您可以使用
JSON.parse()

在较旧的浏览器中,您需要包括json2.js库:


您发布的JSON有点不完整,看看它,我假设它应该是一个具有包含对象的属性的对象:

{
    "57": {
            "ID": 6986,
            "Town": "Paris",
            "latitude": 48.8829447,
            "longitude": 2.3453532999999
    },
    "58": {
            "ID": 6987,
            "Town": "Paris",
            "latitude": 48.8749566,
            "longitude": 2.3588815000001
    }
}
假设这样,您首先需要使用
JSON.parse将其转换为JS对象:

var obj = JSON.parse(jsonString);
然后需要将此对象转换为数组:

var i,
  arr = [];

for (i in obj) {
  if (obj.hasOwnProperty(i)) {
    arr.push(obj[i]);
  }
};

// arr now contains the array you were trying to get

此JSON不完整-我看不到任何数组语法(
[
]
)。这不是有效的JSON。你忘了外面的花括号了吗?没有更多的信息,这是一个复制品。请发布一个更完整的数据示例。这个“名单”到底是什么?它是编程语言中的数据结构,还是文本列表?它到底是什么样子的?到目前为止你尝试了什么,为什么没有成功?你得到了哪个错误?我已经编码了一个php数组,比如$jsarray=json\u encode($tab\u LatLong);它给出的结果…@HubertSolecki您不可能完全得到您发布的结果,因为您发布的结果不是有效的JSON。如果您发布的内容只是输出的一部分,那么您应该明确指出这一点。这看起来像是问题中的粘贴错误,或者可能是一些无效的JSON
var i,
  arr = [];

for (i in obj) {
  if (obj.hasOwnProperty(i)) {
    arr.push(obj[i]);
  }
};

// arr now contains the array you were trying to get