【问题标题】:Deserialize JSON objects one by one using json.net (XAMARIN)使用 json.net (XAMARIN) 一一反序列化 JSON 对象
【发布时间】:2018-06-11 06:26:12
【问题描述】:

我是新手。我在 VS2017 中使用 Xamarin。

我有一个如下的 JSON 文件

[ {  
  "LEDGERID":1,
  "LEDGERNAME":"CASH",
  "UNDER":"19",
  "CREDIT_PERIOD":"0",
  "CREDIT_LIMIT":"0",
  "LEDGER_TYPE":"DEBIT",
  "OPENBAL":120196.00,
  "STATUS":"True",
  "USER_GEN":false,
  "date":null,
  "arabic_name":null},
  {
  "LEDGERID":2,
  "LEDGERNAME":"PURCHASE",
  "UNDER":"17",
  "CREDIT_PERIOD":"0",
  "CREDIT_LIMIT":"0",
  "LEDGER_TYPE":"DEBIT",
  "OPENBAL":0.00,
  "STATUS":"True",
  "USER_GEN":false,
  "date":null,
  "arabic_name":null
  }
  ]

这是一个较长的,但为了便于理解,我把它缩短了。我需要一一接受,因为有时我需要先给出测试用例,然后再将值添加到列表中。我在 XAMARIN 中使用 PCL 存储来存储 Json 文件。我浏览了 NewtonSoft Json 反序列化的文档。我希望有人可以帮助我提前谢谢

【问题讨论】:

  • “我需要给出测试用例”是什么意思?您始终可以反序列化为列表,然后修改实例和列表。如果我们能更深入地了解您的背景,就会更容易为您提供帮助。

标签: c# json xamarin json.net visual-studio-2017


【解决方案1】:
  1. 你的 json 无效,你有 nul 这个词,但我确定这是一个错误

  2. 将您的 json 带到 http://json2csharp.com/ 并从中创建一个类,然后随意调用它

  3. 获取 Json.net Nuget 包

示例类

public class RootObject
{
    public int LEDGERID { get; set; }
    public string LEDGERNAME { get; set; }
    public string UNDER { get; set; }
    public string CREDIT_PERIOD { get; set; }
    public string CREDIT_LIMIT { get; set; }
    public string LEDGER_TYPE { get; set; }
    public double OPENBAL { get; set; }
    public string STATUS { get; set; }
    public bool USER_GEN { get; set; }
    public object date { get; set; }
    public object arabic_name { get; set; }
}

用法

var results = JsonConvert.DeserializeObject<List<RootObject>>(json);

【讨论】:

  • nul 是一个错误。我已经得到了我的 Json.net nuget 包。如果要将这些分类帐 ID 添加到列表并打印在标签中,我该怎么办
  • @mohammedmazin 更新...它会给你一个列表
  • 我是新手。假设我有两个标签 LABEL1 和 Label2。如何分别向他们打印 Ledger id 1 和 Ledger id 2?
  • 顺便说一句,我建议使用惯用的 C# 名称(LedgerId、LedgerName 等)并使用[JsonProperty] 属性来控制序列化,而不是让 JSON 规定 C# 代码中使用的名称。
  • @mohammedmazin:听起来这不是关于这个问题的主题,而是关于 Xamarin 绑定。我建议您单独研究一下,如果需要,请提出一个新问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-02
  • 2013-08-14
  • 1970-01-01
  • 1970-01-01
  • 2013-07-25
相关资源
最近更新 更多