javascript - 解析 JSON 字符串响应。已经尝试过 JSON.parse()

标签 javascript json node.js object

我有一个看起来像这样的响应对象 -

{  
location: '{country:Poland,latitude:50.0575,longitude:19.9802}',
ip: '83.26.234.177',
name: 'John Doe'   
}

我正在尝试像这样读取国家/地区名称 -

data.forEach(function(datapoint) {
    dataObject.ip = datapoint.ip;
    var locationObject = datapoint.location; // also tried JSON.parse
    console.log(locationObject); //{country:Poland,latitude:50.0575,longitude:19.9802}
    console.log(locationObject.country); // undefined
    console.log(locationObject.latitude); //undefined
    console.log(locationObject.longitude); //undefined
}

获取未定义

最佳答案

datapoint.location 是无效的 json。使用String#replace将其转换为有效的 json 字符串,然后解析:

var data = [{
  location: '{country:Poland,latitude:50.0575,longitude:19.9802}',
  ip: '83.26.234.177',
  name: 'John Doe'
}];


data.forEach(function(datapoint) {
  var json = datapoint.location.replace(/([^\d\.{}:,]+)/g, '"$1"'); // wrap the keys and non number values in quotes
  var locationObject = JSON.parse(json);
  console.log(locationObject.country);
  console.log(locationObject.latitude);
  console.log(locationObject.longitude);
});

关于javascript - 解析 JSON 字符串响应。已经尝试过 JSON.parse(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46676006/

相关文章:

javascript - 为什么javascript代码的输出不稳定

javascript - 是否可以在 javascript 中在新窗口中打开链接?

JavaScript - 从索引获取表列

javascript - 未捕获的类型错误 : Cannot use 'in' operator to search for

javascript - MySQL Node JS 异步问题

javascript - 在 chrome 中打印嵌入的 PDF

javascript - 使用 javascript 更改 JSON 输出

html - 添加 .json 数据后使用 bootstrap 正确定位 html 中的内容

node.js - react native + SSL 套接字 : Error: xhr poll error

javascript - POST 请求未将文件上传到服务器