c# - 如何读取原始 JSON 字符串值部分,如下所述
问题描述
我的输入字符串是:
{"data": "{
\"AckNo\":\"112110045659900\",
\"AckDt\":\"2021-01-24 01:14:00\",
\"Irn\":\"543e3dcd9ecd215ffdb75496a72d5272922b1a929f6c8f728298a9db910c8c5b\"}"}
我想读取AckNo
, AckDt
,的数据Irn
。
如何分离或拆分data
节点的上述值部分。
解决方案
您在另一个 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"];
推荐阅读
- android - 如何在android中测量NFC RSSI?
- regex - 从不同日期格式的不同正则表达式模式中提取相同的组
- wildfly - 将 VisualVM 窗口连接到 Wildfly 16
- android - Android 导航:将前一个片段保留在对话框后面。仅适用于 BottomSheetDialogFragment
- java - 如何在我的存储库中访问我的 LiveData 模型的值
- c# - 序列在 System.Linq.Enumerable.Single[Tsource](IEnumerable'1 源)中不包含任何元素
- laravel - Laravel Cashier 和 Stripe:如何将订阅绑定到资源
- python - 解析时髦的 JSON 时出现 JSONDecodeError
- android - 如何以 25 度为增量旋转图像?安卓动画
- php - 如何在 Lumen 中定义一个 Helper 类?