在json对象中将数据从子对象分配给父对象

在json对象中将数据从子对象分配给父对象,json,Json,我有一个包含项目的对象数组 "0: Object Entity: "Customer" Id: 157 Message: "testMessage1" Property: Object Name: "LastName" Rules: "NotEmpty"" 在这里,如何将名称值传递给属性 名称在属性对象中充当键 如何放弃名称并将名称(即姓氏)的值分配给属性 这就是我现在拥有的: [ { "Entity":"Customer", "Property": {"Name":

我有一个包含项目的对象数组

"0: Object
Entity: "Customer"
Id:   157
Message: "testMessage1"
Property: Object
Name: "LastName"
Rules: "NotEmpty""
在这里,如何将名称值传递给属性

名称在属性对象中充当键

如何放弃名称并将名称(即姓氏)的值分配给属性

这就是我现在拥有的:

[
  {
    "Entity":"Customer",
    "Property": {"Name": "Email", "Type": "System.String" },
    "Rules":"NotEmpty",
    "Message":"ssdsdsds",
    "Id":157,
    "ValueToCompare": null,
  }
]

在这里,我需要将名称值(即:Email)直接分配给属性(如下所示:-->code>“Property”:“Email”)

假设这是您的json

[
{
    "0": {
        "Entity": "Customer",
        "Id": 157,
        "Message": "testMessage1"
    },
    "Property": {
        "Name": "LastName",
        "Rules": "NotEmpty"
    }
}
]
您的原始json包含在

原始JSON

和转换json包含在

transformjson

JSONArray原始json;
JSONArray transformjson=原始JSON;

对于(int i=0;i,感谢大家对这个问题感兴趣。 最后我写下了正确的解决办法 我自己解决这个问题的方法是..

在javascript中:

function addProp(obj, propName) {
    for (var p in obj) {

        if (obj.hasOwnProperty(p)) {

            if (p == propName) {
                if (obj[p].Name == null) {
                    obj[p] = obj[p];
                }
                else
                {

                    obj[p] = obj[p].Name;
                }

            } else if (typeof obj[p] == 'object') {
                addProp(obj[p], propName);
            }
        }
    }
    return obj;
}
调用此函数:

addProp(数据“属性”)


现在可以正常工作了

谢谢Angad,你能用plunker?编写这段代码吗?这会让我更好地理解这一点。不……但逻辑是一样的……将原始JSON复制到transformjson。删除键“Property”的jsonobject。然后用键“Property”再次添加从originaljson获取值..okkk.但是我没有找到JSONObject和JsonArray reffrence.我不明白你想做什么..你还必须展示你的工作逻辑是一样的..我的代码是java..你需要在plunker中实现..至少尝试用这个逻辑对你的程序进行语法分析。
function addProp(obj, propName) {
    for (var p in obj) {

        if (obj.hasOwnProperty(p)) {

            if (p == propName) {
                if (obj[p].Name == null) {
                    obj[p] = obj[p];
                }
                else
                {

                    obj[p] = obj[p].Name;
                }

            } else if (typeof obj[p] == 'object') {
                addProp(obj[p], propName);
            }
        }
    }
    return obj;
}