1
임의의 Newtonsoft.Json.Linq.JObject가 주어지면, 거기에 나타나는 모든 문자열 값에 (어떤 위치에 있든간에) 일부 함수를 적용하려는 경우 - 속성의 기본 값 또는 json,이 작업을 수행하는 가장 좋은 방법은 무엇입니까?json.net을 사용하면 모든 문자열 필드를 조작 할 수있는 간단한 방법이 있습니까?
임의의 Newtonsoft.Json.Linq.JObject가 주어지면, 거기에 나타나는 모든 문자열 값에 (어떤 위치에 있든간에) 일부 함수를 적용하려는 경우 - 속성의 기본 값 또는 json,이 작업을 수행하는 가장 좋은 방법은 무엇입니까?json.net을 사용하면 모든 문자열 필드를 조작 할 수있는 간단한 방법이 있습니까?
JObject
의 모든 자손을 찾기 위해
JContainer.DescendantsAndSelf()
을 사용하는 것입니다
는, 다음 매핑 된 문자열이 JToken.Replace()
를 사용하여 사용하여 값 대체 :
public static class JsonExtensions
{
public static JToken MapStringValues(this JContainer root, Func<string, string> func)
{
foreach (var value in root.DescendantsAndSelf().OfType<JValue>().Where(v => v.Type == JTokenType.String).ToList())
value.Replace((JValue)func((string)value.Value));
return root;
}
}
다음
처럼 사용합니다 :
jObj.MapStringValues(s => "remapped " + s);
실제로는 얼마나 매끄러운 지 – user655489
입니다. - 지금 방법을 알아 냈습니다. 프로필에 연락처 정보가 있습니까? 나는 그것을 발견 할 수 없었다. – user655489