Nodejs-jsonArray解析
我有一个json对象,我想从中获取数据! 这是我的json对象Nodejs-jsonArray解析,json,node.js,Json,Node.js,我有一个json对象,我想从中获取数据! 这是我的json对象 "[androidVersionName=2.3.3, androidVersionId=10, androidId=fa0bef4b5a48eacb, mobileModel=sdk, mobileManufacturer=unknown, mobileId=GRI34, mobileProduct=sdk, applicationName=com.example.socketclient, applicationVersion
"[androidVersionName=2.3.3, androidVersionId=10, androidId=fa0bef4b5a48eacb, mobileModel=sdk, mobileManufacturer=unknown, mobileId=GRI34, mobileProduct=sdk, applicationName=com.example.socketclient, applicationVersionName=1.0, applicationVersionCode=1, applicationState=INACTIVE, screenWidth=480, screenHeight=480, screenDensity=240, screenDensityName=hdpi, atdPackages=com.atd.panberes(1)]"
这是我的代码:
var json = JSON.parse(data);
var androidVersionName = data.rowsets['androidVersionName'].row;
console.log(androidVersionName);
我得到了这个错误:
无法读取未定义的属性“androidVersionName”
如何解析来自此jsonObject的数据?基于您的对象的有效JSON:
{
"androidVersionName":"2.3.3",
"androidVersionId":10,
"androidId":"fa0bef4b5a48eacb",
"mobileModel":"sdk",
"mobileManufacturer":"unknown",
"mobileId":"GRI34",
"mobileProduct":"sdk",
"applicationName":"com.example.socketclient",
"applicationVersionName":1.0,
"applicationVersionCode":1,
"applicationState":"INACTIVE",
"screenWidth":480,
"screenHeight":480,
"screenDensity":240,
"screenDensityName":"hdpi",
"atdPackages":"com.atd.panberes(1)"
}
基于对象的有效JSON:
{
"androidVersionName":"2.3.3",
"androidVersionId":10,
"androidId":"fa0bef4b5a48eacb",
"mobileModel":"sdk",
"mobileManufacturer":"unknown",
"mobileId":"GRI34",
"mobileProduct":"sdk",
"applicationName":"com.example.socketclient",
"applicationVersionName":1.0,
"applicationVersionCode":1,
"applicationState":"INACTIVE",
"screenWidth":480,
"screenHeight":480,
"screenDensity":240,
"screenDensityName":"hdpi",
"atdPackages":"com.atd.panberes(1)"
}
您无法将其解析为对象。但您可以将其转换为JS对象
var data = "[androidVersionName=2.3.3, androidVersionId=10, androidId=fa0bef4b5a48eacb, mobileModel=sdk, mobileManufacturer=unknown, mobileId=GRI34, mobileProduct=sdk, applicationName=com.example.socketclient, applicationVersionName=1.0, applicationVersionCode=1, applicationState=INACTIVE, screenWidth=480, screenHeight=480, screenDensity=240, screenDensityName=hdpi, atdPackages=com.atd.panberes(1)]";
var result = {};
data.replace(/(\w+)=(\w+)/g, function(_, left, right) { result[left] = right; })
console.log(result);
您无法将其解析为对象。但您可以将其转换为JS对象
var data = "[androidVersionName=2.3.3, androidVersionId=10, androidId=fa0bef4b5a48eacb, mobileModel=sdk, mobileManufacturer=unknown, mobileId=GRI34, mobileProduct=sdk, applicationName=com.example.socketclient, applicationVersionName=1.0, applicationVersionCode=1, applicationState=INACTIVE, screenWidth=480, screenHeight=480, screenDensity=240, screenDensityName=hdpi, atdPackages=com.atd.panberes(1)]";
var result = {};
data.replace(/(\w+)=(\w+)/g, function(_, left, right) { result[left] = right; })
console.log(result);
你的JSON对象实际上不是有效的JSON,如果它应该是object而不是string。我如何解析这种对象?你的JSON对象实际上不是有效的JSON,如果它应该是object而不是string。我如何解析这种对象?我已经将我的对象完全更改为你所说的!现在我如何从中解析数据呢;我应该这样做。如果您想确保一切正常,可以使用其中一个在线解析器:还要注意,您不能使用“rowset”访问JSON属性。在您的示例中,它将是“json.androidVersionName”。请查看我的代码和输出。代码:console.log(数据);var json=json.parse(数据);log(json.toString());var androidVersionName=data.androidVersionName;日志(androidVersionName);解析后必须使用的对象是“json”。不是“数据”。因此,获取AndroidVersionId的正确方法是:var androidVersionName=json.androidVersionName;我已经完全按照你说的改变了我的目标!现在我如何从中解析数据呢;我应该这样做。如果您想确保一切正常,可以使用其中一个在线解析器:还要注意,您不能使用“rowset”访问JSON属性。在您的示例中,它将是“json.androidVersionName”。请查看我的代码和输出。代码:console.log(数据);var json=json.parse(数据);log(json.toString());var androidVersionName=data.androidVersionName;日志(androidVersionName);解析后必须使用的对象是“json”。不是“数据”。因此,获取AndroidVersionId的正确方法是:var androidVersionName=json.androidVersionName;