![](/img/trans.png)
[英]deserialize json file c#/MVC - getting a list of the properties not working
[英]JSON: Getting properties value in a list on a specific condition using c#
我有一個Jobject。
{
"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的類:
public class Entity
{
[JsonProperty("address")]
public string Address { get; set; }
[JsonProperty("state")]
public string State { get; set; }
[JsonProperty("postcode")]
public string PostCode { get; set; }
[JsonProperty("membergroup")]
public Dictionary<string, bool> MemberGroup { get; set; }
}
將您的json轉換為字符串,將其轉換為c#類,並僅為membergroup
選擇真實值。
var entity = JsonConvert.DeserializeObject<Entity>(jsonString);
entity.MemberGroup = entity.MemberGroup.Where(x => x.Value).ToDictionary(k => k.Key, v => v.Value);
如果不想創建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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.