다음은 내 JSON입니다 :JSON 문자열에서 속성 값을 업데이트하는 방법은 무엇입니까?
[
{
"name": "Node-1",
"flag": true,
"myObj": {
region: {
info: {
name: null,
infoFlag: false,
}
}
},
"nodes": [
{
"name": "Node-1-1",
"flag": true,
"myObj": {
region: {
info: {
name: "abc",
infoFlag: false,
}
}
},
"nodes": [
{
"name": "Node-1-1-1",
"flag": true,
"myObj": {
region: {
info: {
name: "xyz",
infoFlag: false,
}
}
},
"nodes": [
]
}
]
}
]
}
]
나는 다음과 같은 규칙을 내 위의 JSON 문자열의 두 가지 속성을 업데이트 할 :
신고 : 내가 맹목적으로 false
이 속성을 업데이트 할.
infoFlag는 : info
의 name
속성이 null
입니다 경우, 나는 그것이 not null
infoFlag
true
다른 false
을하는 경우 업데이트 할.
따라서 이러한 규칙으로 JSON을 업데이트 한 후 JSON을 문자열로 사용하려고합니다.
참고 : 내 JSON에 클래스를 만들지 않으려는 많은 속성이 있으므로 위의 두 가지 규칙에 따라 속성을 deserialize하고 업데이트하지 않으려 고합니다. 수업과 비 직렬화하지 않고 작동합니다.
이
내가 그것을하려고 방법입니다string json = "MyJson";
var temp = JArray.Parse(json);
temp.Descendants()
.OfType<JProperty>()
json = temp.ToString();
을하지만, 여기에 내가 JSON을 반복적으로 통과하는 방법으로 받고 있지 않다; 나는 당신의 요구에이 코드가 꽤 자세한 그렇게 우아하지 이해하지만, 작동 한 경우
Node-1
Node-1-1
Node-1-1-1
가능한 복제 https://stackoverflow.com/questions/4535840/ :두고
솔루션은 다음과 같이 될 수있다, 상기 되 동적 객체 - 사용 - json-net 사용) – GolezTrol클래스를 선언하지 않고도 deserialize 할 수 있습니다. (https://stackoverflow.com/questions/4535840/deserialize-json-object-into- 동적 객체 - 사용 - json-net). alertnative는 전혀 deserialize하지 않는 것이지만 정말로 훌륭한 파서를 작성해야합니다. – GolezTrol
@GolezTrol이 질문을하는 주된 목적은 클래스에 직렬화를하지 않고 속성 값을 찾고 업데이트하는 방법이었습니다. 동적 객체에 json 문자열을 비 직렬화하는 방법을 잘 알고 있습니다 :) –