我正在尝试解析来自HTTP的字符串。字符串看起来像
[
{
"apiVersion": "ocs.openshift.io/v1alpha1",
"kind": "StorageCluster",
"metadata": {
"name": "example-storagecluster",
"namespace": "openshift-storage"
},
"spec": {
"manageNodes": false
}
},
]
分析此字符串会出现此错误:
未捕获到的SyntaxError:意外令牌[带有JSON.parse
有人可以帮助我如何解析此字符串并获取[]中的值。预先感谢。
答案 0 :(得分:1)
最后一个}后的逗号是不允许的。
答案 1 :(得分:0)
这是代码。我在后台脚本中执行,它可以正确给出值
var string = '[{"UserID":"10001","Name":"Ram"},{"UserID":"10002","Name":"Sultana"},{"UserID":"10003","Name":"Lakshmi"}]';
var parser = new JSONParser();
var parsedData = parser.parse(string);
var length = parsedData.length;
gs.print(length);
for(var i=0;i<length;i++){
gs.print(parsedData[i].UserID);
gs.print(parsedData[i].Name);
}
如果这可以解决您的问题,则将其标记为“正确”,如果根据影响发现我的回答值得,请点击“喜欢”和“有用”。
答案 2 :(得分:0)
那不是有效的JSON文档。如果没有其他方法,您可以始终使用https://jsonlint.com/来验证文档。
在您的情况下,JSON文档中的逗号过多:
[
{
"apiVersion": "ocs.openshift.io/v1alpha1",
"kind": "StorageCluster",
"metadata": {
"name": "example-storagecluster",
"namespace": "openshift-storage"
},
"spec": {
"manageNodes": false
}
}
]