在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;
}