【问题标题】:How read the raw JSON string value part as mentioned below如何读取原始 JSON 字符串值部分,如下所述
【发布时间】:2021-01-24 15:18:05
【问题描述】:

我输入的字符串是:

{"data": "{
\"AckNo\":\"112110045659900\",
\"AckDt\":\"2021-01-24 01:14:00\",
\"Irn\":\"543e3dcd9ecd215ffdb75496a72d5272922b1a929f6c8f728298a9db910c8c5b\"}"}

我要读取AckNoAckDtIrn的数据。

如何分离或拆分data节点的上述值部分。

【问题讨论】:

  • 如果不想反序列化为自定义类,可以使用Newtonsoft.JSON。

标签: c# asp.net .net-core asp.net-core-webapi


【解决方案1】:

你在另一个 JSON 中有一个 JSON... 使用 Json.NET:

var des = (JObject)JsonConvert.DeserializeObject(str);

// The inner data
string data = (string)des["data"];

// From string to object
var desInner = (JObject)JsonConvert.DeserializeObject(data);

// The properties you want
string ackNo = (string)desInner["AckNo"];
DateTime ackDt = (DateTime)desInner["AckDt"];
string irn = (string)desInner["Irn"];

如果ackDt 是可选的,您可以:

var ackDt = (DateTime?)desInner["AckDt"];

如果你想让ackNo 成为一个数字:

long ackNo = (long)desInner["AckNo"];

或(如果是可选的):

long? ackNo = (long?)desInner["AckNo"];

【讨论】:

    【解决方案2】:

    请检查以下线程。对你有帮助。

    你只需要创建可以代表json字符串的类并跟随。

    How to Convert JSON object to Custom C# object?

    【讨论】:

      【解决方案3】:

      首先,创建一个与您的 json 匹配的类结构。

      public class MyData
      {
          public Details Data { get; set; }
      }
      public class Details
      {
          public string AckNo { get; set; }
          public DateTime AckDt { get; set; }
          public string Irn { get; set; }
      }
      

      然后使用JsonConvert 对其进行反序列化。 安装包NewtonSoft.Json 以使用JsonConvert

      var result = JsonConvert.DeserializeObject<MyData>(yourInputString);
      var ackNo = result.Data.AckNo;
      var ackDt = result.Data.AckDt;
      var irn = result.Data.Irn;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-12-04
        • 1970-01-01
        • 1970-01-01
        • 2019-11-26
        • 1970-01-01
        • 1970-01-01
        • 2022-01-24
        相关资源
        最近更新 更多