C# JSON:使用c在特定条件下获取列表中的属性值#
我有一份工作C# JSON:使用c在特定条件下获取列表中的属性值#,c#,json.net,C#,Json.net,我有一份工作 { "address": "test", "state": "", "postcode": "", "membergroup": { "User1": false, "User2": false, "User3": false, "User4": true, "User5": false, "User6": true } } 我正在尝试使用c#获取字符串列表中所有真值的membergroup属性值 比如{“use
{
"address": "test",
"state": "",
"postcode": "",
"membergroup": {
"User1": false,
"User2": false,
"User3": false,
"User4": true,
"User5": false,
"User6": true
}
}
我正在尝试使用c#获取字符串列表中所有真值的membergroup属性值
比如{“user4”,“user6”}
这可能吗?
请对此提出建议?使用Json.NET:
创建一个用C#表示json的类:
如果不想创建C#对象,也可以使用JObect 注: 根据获取json的方式,可能不需要在第一步中将其序列化回json字符串。它应该已经以json字符串的形式出现了
using Newtonsoft.Json.Linq;
var json = JsonConvert.SerializeObject(yourObject);
var entireJson = JToken.Parse(json);
var propertyList = (JObject)entireJson["membergroup"];
foreach (var property in propertyList)
{
var key = property.Key;
var value = (bool)property.Value;
if (value)
{
key.Dump();
}
}
//User4
//User6
“我在努力”到底在哪里?请给我们看看。到目前为止你都试了些什么?您可以将所有成员组值反序列化为
数组
,然后选择true
值。@ArthurRey。。到目前为止我还没有试过。。只是看看有没有可能?Json.net的新功能。是的,反序列化成员组可以完成我认为的工作。我会检查它。谢谢什么是jsonString?我有一个jobject我需要将它转换/解析为string吗?使用jobject.ToString()
var entity = JsonConvert.DeserializeObject<Entity>(jsonString);
entity.MemberGroup = entity.MemberGroup.Where(x => x.Value).ToDictionary(k => k.Key, v => v.Value);
using Newtonsoft.Json.Linq;
var json = JsonConvert.SerializeObject(yourObject);
var entireJson = JToken.Parse(json);
var propertyList = (JObject)entireJson["membergroup"];
foreach (var property in propertyList)
{
var key = property.Key;
var value = (bool)property.Value;
if (value)
{
key.Dump();
}
}
//User4
//User6