programing

JObject에서 JProperty 값을 추가 또는 갱신하려면

lastmoon 2023. 4. 2. 11:49
반응형

JObject에서 JProperty 값을 추가 또는 갱신하려면

현재 이 작업을 수행하기 위해 다음과 같은 확장 방법을 사용하고 있지만, 이 작업을 수행하기 위한 기존 방식 또는 확장 방법이 있어야 할 것 같습니다(또는 적어도 이 작업의 하위 집합).Json 안에 아무것도 없다면.NET 그럼 권장 프로세스는 무엇입니까?또는 권장 프로세스에 근접하기 위해 아래의 코드를 변경하는 방법을 알려주세요.

public static partial class ExtensionMethods
{
    public static JObject SetPropertyContent(this JObject source, string name, object content)
    {
        var prop = source.Property(name);

        if (prop == null)
        {
            prop = new JProperty(name, content);

            source.Add(prop);
        }
        else
        {
            prop.Value = JContainer.FromObject(content);
        }

        return source;
    }
}

위의 코드는 기본적인 용도로 사용할 수 있는 것은 확인할 수 있습니다만, 보다 폭넓은 용도에 대응할 수 있는지는 모르겠습니다.

이 내선번호가 다음 주소를 반환하는 이유JObject는, 콜을 체인 할 수 있도록 하는 것입니다(이 내선 번호 또는 다른 메서드나 내선 번호에 대한 복수의 콜).

예.,

var data = JObject.Parse("{ 'str1': 'test1' }");

data
    .SetPropertyContent("str1", "test2")
    .SetPropertyContent("str3", "test3");

// {
//   "str1": "test2",
//   "str3": "test3"
// }

@dbc에서 설명한 바와 같이 인덱서를 사용하면 됩니다.

var item = JObject.Parse("{ 'str1': 'test1' }");

item["str1"] = "test2";
item["str3"] = "test3";

자세한 것은 바이올린을 봐 주세요.

네스트된 JSON에 액세스하려고 하는 모든 사용자는 @pjs가 필요에 따라 추가 중괄호를 추가하는 응답 방식을 사용합니다.

JObject item = JObject.Parse("{
   "test": {
       "first": "one",
       "second": "two",
       "nth":   "n"
   }
}");

편집 방법:

item["test"]["nth"] = "updated";

JObject 업데이트 대상:

{
   "test": {
       "first": "one",
       "second": "two",
       "nth":   "updated"
   }
}

언급URL : https://stackoverflow.com/questions/30085926/how-do-you-add-or-update-a-jproperty-value-in-a-jobject

반응형