首页 > 解决方案 > 如何读取原始 JSON 字符串值部分,如下所述

问题描述

我的输入字符串是:

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

我想读取AckNo, AckDt,的数据Irn

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

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

解决方案


您在另一个 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"];

推荐阅读