Javascript 在typescript中的嵌套JSON字符串上迭代
我有一个测试嵌套的JSON字符串Javascript 在typescript中的嵌套JSON字符串上迭代,javascript,json,typescript,Javascript,Json,Typescript,我有一个测试嵌套的JSON字符串 const testString = `{ "object1": { "5": [ { "id": "A2OKPZ5S9F78PD", "rate": "2", "item": "item", "status": "status" } ] }, "type": "LIVE_EVENT" }`; const model = JSON.parse(t
const testString = `{
"object1": {
"5": [
{
"id": "A2OKPZ5S9F78PD",
"rate": "2",
"item": "item",
"status": "status"
}
]
},
"type": "LIVE_EVENT"
}`;
const model = JSON.parse(testString);
Object.values(model.object1).forEach((obj) =>
obj.foreach((innerObj) => console.log(innerObj))
);
正如您在上面看到的,我正试图将其解析为JSON并进行迭代。我在JSON.parse内部对象过程中遇到的问题是假设类型未定义,并且foreach不能应用于该对象。有人能帮忙吗?您的JSON无效(编辑前),因为状态键/值对后面有一个额外的逗号,forEach()
有一个大写的E。此外,正如下面的评论中所讨论的,您似乎需要将内部的obj
转换为一种理解forEach()
的类型:
const testString=`{“object1”:{“5”:[{“id”:“A2OKPZ5S9F78PD”,“rate”:“2”,“item”:“item”,“status”:“status”}]},“type”:“LIVE_EVENT”};
const model=JSON.parse(testString);
Object.values(model.object1).forEach((obj)=>
(obj作为任何对象).forEach((innerObj)=>console.log(innerObj))
);
(obj | |[])。forEach
尝试更改到此对象。值(model.object1)。forEach(obj=>(obj | |[])。forEach(innerObj=>console.log(innerObj));还是不起作用的forEach不是forEach还是一样的?现在仍然起作用。试过这个。Object.values(model.object1).forEach(obj=>(obj | |[]).forEach(innerObj=>console.log(innerObj))model.object1实际上是一个对象,因此您需要迭代它的属性。我正在运行与您粘贴在typescript上的代码相同的代码。它说forEach不能应用于未定义的对象。检查您的JSON.parse(testString)
是否真的在解析JSON,也就是说,记录model
变量。@DarkShadows您能分享其中的SS吗?请确保在运行上述代码时,您实际拥有的testString
与我完全相同,因为当我在本地运行时,它工作了。@LuísRamalho Yes(obj作为任何对象)工作了。非常感谢你。你能更新你的答案吗?这样我就可以标记为接受了。