programing

NewtonSoft를 사용하여 JSON 개체의 속성을 업데이트하는 방법

powerit 2023. 3. 14. 21:59
반응형

NewtonSoft를 사용하여 JSON 개체의 속성을 업데이트하는 방법

다음과 같은 JSON 문자열이 있습니다.

{
    "code": "GENDER",
    "value": { "option": "ML" }
}

업데이트를 하고 싶습니다.option의 재산."Male"값이 같으면"ML"그리고."Female"값이 같으면"FM".

여기까지 왔는데 어떻게 해야 할지 모르겠어요.

JArray contentobject = (JArray)JsonConvert.DeserializeObject(contentJSON);  
JObject voicgObj = contentobject.Children().FirstOrDefault(ce =>   ce["code"].ToString() == "GENDER") as JObject;
JProperty voicgProp = voicgObj.Property("value");

어떻게 가는지 모르겠어요.option의 자식인value.

잘 부탁드립니다.어떤 조언이라도 좋아요.

속성을 키로 사용하여 개체에 액세스할 수 있습니다.

JObject obj = JObject.Parse(json);
string gender = (string)obj["value"]["option"];

예를 들어 다음과 같이 시도합니다.

JObject obj = JObject.Parse(json);
var val = obj["value"];
string option = (string)val["option"];

if (option == "ML")
   val["option"] = "Male";

if (option == "FM")
   val["option"] = "Female";

string result = obj.ToString();

다른 방법으로는 최소한의 속성 검색으로 다음을 수행합니다.

var val = voicgObj["value"] as JObject;
JProperty optionProp = val.Property("option");
string option = optionProp.Value.Value<string>();

if (option == "ML")
    optionProp.Value = "Male";
else if (option == "FM")
    optionProp.Value = "Female";

언급URL : https://stackoverflow.com/questions/22853066/how-to-update-a-property-of-a-json-object-using-newtonsoft

반응형