2017-09-11 56 views

回答

3

一個簡單的方法來做到這一點是使用JContainer.DescendantsAndSelf()找了根JObject是字符串值的所有後代,然後更換使用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); 
+0

這真的很光滑 – user655489

+0

這意味着要做到這一點 - 剛纔想出瞭如何。您的個人資料是否提供您的聯繫信息?我找不到它。 – user655489

相關問題