将 JSON 解析为列表



我想解析一个 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;` 
        }

相关内容

  • 没有找到相关文章

最新更新