使用LINQ从JSON对象获取值

时间:2015-08-04 17:24:51

标签: c# json linq json.net

我有一个Json对象

{'name':'NARM','options':['N','A', 'P']} (da1)

和另一个

{'name':'NARM','options':['N','A']} (da2)

我想找到差异,理想情况下我想回归

{'name':'NARM','options':['P']}

我非常简单地尝试var missing = da1.execpt(da2); 它似乎正在返回所有的da1

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

如果在json中的数组上使用 Except 会更容易

string json1 = @"{'name':'NARM','options':['N','A', 'P']}";
string json2 = @"{'name':'NARM','options':['N','A']}";

var j1 = JObject.Parse(json1);
var j2 = JObject.Parse(json2);

var diff = j1["options"].Select(x => (string)x)
            .Except(j2["options"].Select(x => (string)x))
            .ToList();