博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#获取动态key的json对象的值
阅读量:7304 次
发布时间:2019-06-30

本文共 1616 字,大约阅读时间需要 5 分钟。

  hot3.png

C#获取动态key的json对象的值

问题描述

如果直接获取某个json数组中的元素将得到如下的json

{    "44": {        "height": 25,        "appeared": -70000000,        "length": 44,        "order": "saurischia",        "vanished": -70000000,        "weight": 135000    }}

这个json对象如果使用C#类来反序列化,那么实体类的结构如下,实体类的类名需要与json对象key相同的才可以使用json反序列化,这样对程序造成了极大的不便。

public class 44{    public int height { get; set; }    public int appeared { get; set; }    public int length { get; set; }    public string order { get; set; }    public int vanished { get; set; }    public int weight { get; set; }}public class Root{    public 44 44 { get; set; }}

解决方案

以上json对象由于key是动态的无法使用C#反序列化,但是直接取到value就能序列化了,如下。

{    "height":25,    "appeared":-70000000,    "length":44,    "order":"saurischia",    "vanished":-70000000,    "weight":135000}

以上json对象就可以使用我们常用的格式转换了。

public class Root{    public int height { get; set; }    public int appeared { get; set; }    public int length { get; set; }    public string order { get; set; }    public int vanished { get; set; }    public int weight { get; set; }}

实现代码

从动态key的json对象里面拿到value那部分,可以反序列化的字符串,请使用如下的函数,注意引入类库。

using Newtonsoft.Json;using Newtonsoft.Json.Linq;using System.Linq;
/// /// 本类用于处理动态Key的json对象/// /// 需要处理的json对象/// 
json对象的第一个元素的values
public static string GetJsonValue(string strJson){ string strResult; JObject jo = JObject.Parse(strJson); string[] values = jo.Properties().Select(item => item.Value.ToString()).ToArray(); if (values == null) { strResult = ""; } else { strResult = values[0]; } return strResult;}

转载于:https://my.oschina.net/dongri/blog/761285

你可能感兴趣的文章
变量的存储类别以及作用空间
查看>>
JQuery 获取节点
查看>>
一句话搞定python六剑客
查看>>
js 获取今天以及前一周/前20天时间
查看>>
C#概念总结(二)
查看>>
.net通过一般处理程序模拟用户控件数据保持、Ispostback 【第二版将html与ashx文件分开】...
查看>>
Linux监控命令之==>netstat
查看>>
服务器负载均衡的部署方式
查看>>
Ubuntu16.04系统安装搜狗输入法详细教程
查看>>
学习 Spring (十七) Spring 对 AspectJ 的支持 (完结)
查看>>
C#中如何读写文件,控制台
查看>>
一些变态的PHP一句话后门收集
查看>>
DIV+CSS页面布局
查看>>
APK签名校验绕过
查看>>
iOS开发隐藏键盘方法总结
查看>>
NotePad++编译代码
查看>>
GCC 提供的原子操作
查看>>
算法题集-2
查看>>
CSS样式表初始化代码
查看>>
10 在Spring Cloud中使用Hystrix
查看>>