我有一个像下面这样的json:
{ "d": { "results": [ { "__metadata": { }, "prop1": "value1", "prop2": "value2", "__some": "value" }, { "__metadata": { }, "prop3": "value1", "prop4": "value2", "__some": "value" }, ] } }
我只想将此JSON转换为其他JSON。我想从JSON中删除“ _ 元数据”和“ _some”节点。我正在使用JSON.NET。
我刚结束反序列化到JObject并递归地循环遍历以删除不需要的字段。这是那些有兴趣的人的功能。
private void removeFields(JToken token, string[] fields) { JContainer container = token as JContainer; if (container == null) return; List<JToken> removeList = new List<JToken>(); foreach (JToken el in container.Children()) { JProperty p = el as JProperty; if (p != null && fields.Contains(p.Name)) { removeList.Add(el); } removeFields(el, fields); } foreach (JToken el in removeList) { el.Remove(); } }