如何以角度动态创建嵌套的Json文件?

时间:2018-01-18 10:31:28

标签: javascript json angular loops typescript

我想以角度动态创建嵌套的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文件中。

1 个答案:

答案 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>