我想以角度动态创建嵌套的Json文件。 它从另一个Json文件中获取。 两个嵌套的循环读取数据。 Json文件:
{
"data": [
[
{"dat": "hello", "date": 4, "Nr": "11", "stat": "bye"},
{"dat": "hello", "date": 2, "Nr": "13", "stat": "bye"},
{"dat": "hello", "date": 4, "Nr": "11", "stat": "bye"},
{"dat": "hello", "date": 2, "Nr": "13", "stat": "bye"},
],
[
{"dat": "hello", "date": 4, "Nr": "11", "stat": "bye"},
{"dat": "hello", "date": 2, "Nr": "13", "stat": "bye"},
{"dat": "hello", "date": 4, "Nr": "11", "stat": "bye"},
{"dat": "hello", "date": 2, "Nr": "13", "stat": "bye"},
],
现在我想将其解压缩到javascript数组/地图中。 在ts文件中。
答案 0 :(得分:-1)
JSON数据(即包含序列化JSON的字符串)可以直接解析为对象,然后在JavaScript / TypeScript中使用。 const json = `{
"data": [
[
{"dat": "hello", "date": 4, "Nr": "11", "stat": "bye"},
{"dat": "hello", "date": 2, "Nr": "13", "stat": "bye"},
{"dat": "hello", "date": 4, "Nr": "11", "stat": "bye"},
{"dat": "hello", "date": 2, "Nr": "13", "stat": "bye"}
],
[
{"dat": "hello", "date": 4, "Nr": "11", "stat": "bye"},
{"dat": "hello", "date": 2, "Nr": "13", "stat": "bye"},
{"dat": "hello", "date": 4, "Nr": "11", "stat": "bye"},
{"dat": "hello", "date": 2, "Nr": "13", "stat": "bye"}
]
]
}`;
const obj = JSON.parse(json);
for (let collection of obj.data) {
for (let item of collection) {
console.log('Item:', item.dat, item.Nr, item.stat);
}
}
是您执行此操作的方法。
完整示例:
interface MyJson {
data: { dat: string, date: number, Nr: string, stat: string }[][];
}
const obj: MyJson = JSON.parse(json);
您可以添加界面以改进解析结构的类型信息和自动完成:
<item android:title="Color">
<menu>
<group android:id="@+id/ColorMenuGroup" android:checkableBehavior="single">
<item
android:id="@+id/Black"
android:title="@string/black" />
<item
android:id="@+id/Blue"
android:title="@string/blue" />
<item
android:id="@+id/Red"
android:title="@string/red" />
</group>
</menu>
</item>
<item android:title="Width">
<menu>
<group android:id="@+id/WidthMenuGroup" android:checkableBehavior="single">
<item
android:id="@+id/Width1"
android:title="@string/_1"
<item
android:id="@+id/Width3"
android:title="@string/_3"
<item
android:id="@+id/Width5"
android:title="@string/_5"
</group>
</menu>
</item>