如何更新JSON结构

时间:2016-09-03 13:12:47

标签: jquery json

我的JSON文件中有一个非常复杂的JSON结构。该文件有很多记录。如果我想稍后添加字段/属性/数组,那么最好的方法是什么?我必须将它添加到每个记录中吗?

为了澄清更多:让我们稍后说我需要在我的主JSON结构中添加一个额外的数组。是否有捷径可寻?或者,如果我的JSON文件中有100个记录/对象,我是否必须手动添加新的字段/属性/数组? (不是以编程方式进行。)

例如,让我们说这代表我的JSON文件中的一条记录...

  "devices": [
    {
        "deviceName": "ABC 6 Plus",
        "deviceShortName": "ABC6plus",
        "productId": "223311",
        "dropdowns": [
            {
                "dropDownText": "models:",
                "dropDownItems": [ "ABC6 Plus", "ABC6s Plus" ]
            },
            {
                "dropDownText": "logo:",
                "dropDownItems": [ "Exposed Logo", "Covered Logo" ]
            }
        ],
        "imagewidth": "400",
        "skinPositions": [
            { "side":  "4422" },
            { "top":   "3322" },
            { "bottom":   "1122" }
        ],
        "invalidSkins": [
            "yellow"
        ]
    }

所以,让我们说我有一个包含100条记录的JSON文件。现在,我想添加" productName"数据集的键/值。我是否必须手动将其添加到每条记录中?

"productName": ""

或者是否有编辑等...我可以快速完成这项工作?我希望这是有道理的。

2 个答案:

答案 0 :(得分:0)

首先,您的问题需要进一步澄清。

使用您喜欢的编程语言获取所有JSON记录并在其上循环将这个字段添加到每个记录中然后将它们写在您使用的存储(DB,File,..)上。

或者您可以通过处理未找到的检索异常来从另一方处理此问题。 例如:在检索JSON记录是否具有此字段时,如果不处理它。

答案 1 :(得分:0)

我假设记录是指一组记录。 由于您没有提到任何结构和您正在使用的语言,请以此为例:(javascript)

gridview.setOnItemClickListener(new AdapterView.OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                                int position, long id) {

            NextFragment nextFrag= new NextFragment();
            Bundle bundle = new Bundle();
            bundle.putInt("POSITION",position);
            this.getFragmentManager().beginTransaction()
                    .replace(R.id.Layout_container, nextFrag,TAG_FRAGMENT)
                    .addToBackStack(null)
                    .commit();
        }
    });

现在a的结构是“a has property b是属性c的数组” 因此,如果要将另一个属性“d”添加到“b”(b的数组),则可以使用:     forEach()函数

对于给出的例子,

var a = {};
a.b = [];
a.b.c = {}; 
//a is populated

现在,“b”的每条记录都有一个属性“d”。