我想解析一个 json 来列出我们如何做到这一点。我尝试了以下代码,但它不起作用
Dictionary<string, object> pGateways=(Dictionary<string,object>)Json.JsonParser.FromJson(jsonString);
List<object> creditOptions = new List<object>();
creditOptions = (List<object>)pGateways;
在得到它 int 列表后,我想遍历它
这是我的示例 json
{
"MessageCode": "CS2009",
"Status": "Y",
"ErrorCode": "0",
"ErrorDescription": "Success",
"account":
{
"card":
[
{
"cardend": "asd",
"token": "aads",
"cardstart": "asdad",
"accounttype": "asda",
"cardnetwork": "as",
"issuer": "asd",
"customername": "a",
"expdate": "04/2018"
},
{
"cardend": "asda",
"token":"adssadsa",
"cardstart": "asd",
"accounttype": "asd",
"cardnetwork": "asd",
"issuer": "asda",
"customername": "asd",
"expdate": "03/2016"
}
],
"bank": []
}
}
最好的选择可能是使用 JsonConvert 以便将Json
解析为List
。
参考:Windows Phone 中的 JSON 解析
Json.Net。
若要安装 Json.NET 请使用 NugetGallery : Json.net Nuget Gallery
您可以使用 json2Csharp.com 从 json 生成 c# 类
您发布的 JSON 字符串不适合直接反序列化到 List。最简单的方法是使用在线 JSON 2 CSharp 工具生成类并将 json 字符串反序列化为它。下面是生成的类的示例:
public class Card
{
public string cardend { get; set; }
public string token { get; set; }
public string cardstart { get; set; }
public string accounttype { get; set; }
public string cardnetwork { get; set; }
public string issuer { get; set; }
public string customername { get; set; }
public string expdate { get; set; }
}
public class Account
{
public List<Card> card { get; set; }
public List<object> bank { get; set; }
}
public class RootObject
{
public string MessageCode { get; set; }
public string Status { get; set; }
public string ErrorCode { get; set; }
public string ErrorDescription { get; set; }
public Account account { get; set; }
}
下面是反序列化的逻辑:
var root = JsonConvert.DeserializeObject<RootObject>(jsonStr);
其中 jsonStr
变量包含您发布的 JSON 字符串。
你需要使用 json2csharp 工具来生成类,并将 JSON 字符串反序列化为列表。
下面是从 JSON 字符串生成的类。
public class Card
{
public string cardend { get; set; }
public string token { get; set; }
public string cardstart { get; set; }
public string accounttype { get; set; }
public string cardnetwork { get; set; }
public string issuer { get; set; }
public string customername { get; set; }
public string expdate { get; set; }
}
public class Account
{
public List<Card> card { get; set; }
public List<object> bank { get; set; }
}
public class RootObject
{
public string MessageCode { get; set; }
public string Status { get; set; }
public string ErrorCode { get; set; }
public string ErrorDescription { get; set; }
public Account account { get; set; }
}
并使用 JsonConvert 反序列化您的 JSON 对象,
假设e.result
是你的 JSON 字符串,那么
var rootObject = JsonConvert.DeserializeObject<RootObject>(e.Result);
foreach (var blog in rootObject.Card)
{
//access your data like this- `blog.cardend;` or `blog.token;`
}