我有一个包含项目的对象数组
"0: Object
Entity: "Customer"
Id: 157
Message: "testMessage1"
Property: Object
Name: "LastName"
Rules: "NotEmpty""
在这里,我如何将Name值传递给Property
名称在Property对象中充当键。
我怎样才能丢弃名称并将名称(即姓氏)的值分配给属性
这就是我现在所拥有的:
[
{
"Entity":"Customer",
"Property": {"Name": "Email", "Type": "System.String" },
"Rules":"NotEmpty",
"Message":"ssdsdsds",
"Id":157,
"ValueToCompare": null,
}
]
在这里,我需要将Name值(即:Email)分配给Property Directly(就像这样: - "Property": "Email"
)
答案 0 :(得分:0)
假设这是你的json
[
{
"0": {
"Entity": "Customer",
"Id": 157,
"Message": "testMessage1"
},
"Property": {
"Name": "LastName",
"Rules": "NotEmpty"
}
}
]
您的原始json包含在
中originaljson
并转换json包含在
中transformjson
JSONArray originaljson;
JSONArray transformjson=originaljson;
for(int i=0;i<originaljson.length();i++)
{
JSONObject mainJson=originaljson.getJSONObject(i);
String name=mainJson.getJSONObject("Property").getString("Name");
//mainJson.remove("Property");
JSONObject mainJsonTransform=transformjson.getJSONObject(i);
mainJsonTransform.remove("Property");
mainJsonTransform.put("Property",name);
}
现在你的transformjson包含了所需的json
答案 1 :(得分:0)
谢谢你们对这个问题的兴趣。 最后我写下了正确的解决方案 我自己解决这个问题的方法是......
在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(数据,&#39;属性&#39;)
现在正常工作