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;
/// <summary>
/// 本类用于处理动态Key的json对象
/// </summary>
/// <param name="jObject">需要处理的json对象</param>
/// <returns>json对象的第一个元素的values</returns>
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;
}

C#获取动态key的json对象的值相关推荐

  1. Java 和 Python 解析动态 key 的 JSON 数据

    一.概述 解析JSON过程中,什么情况都可能遇到.遇到特殊的情况,不会怎么办?肯定不是设计的问题,一定是你的姿势不对. 有这样一种JSON需要解析: {"b3444533f6544" ...

  2. php取json子对象属性,php中输出json对象的值(实现方法)

    实例如下所示: $json = '{"report":{"date":"2012-04-10","content":&q ...

  3. 访问 JSON 对象的值

    可以使用点号(.),或中括号([])来访问 JSON 对象的值. 使用点号访问对象时,直接使用对象的 key 来访问, key 无须放在双引号中.如: <script>   var myO ...

  4. 修改 JSON 对象的值

    你可以使用点号(.)来修改 JSON 对象的值.如: myObj.zhihu = "https://www.zhihu.com/people/leiqikui/"; 你可以使用中括 ...

  5. js获取URL参数以及Json对象常用方法

    JS中JSON对象常用方法 JSON.parse('{ "name":"runoob", "alexa":10000, "site ...

  6. mysql替换json的key_mysql中json_replace函数的使用?通过json_replace对json对象的值进行替换...

    需求描述: 在看mysql中关于json的内容,通过json_replace函数可以实现对json值的替换, 在此记录下. 操作过程: 1.查看带有json数据类型的表 mysql> selec ...

  7. java取json对象的值_java的JsonObject对象提取值方法

    实例如下所示: import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba. ...

  8. python pandas dataframe 转json_python将相类不同key的json对象转化为pandas的dataframe(上篇)...

    1. python添加package包 import json import pandas as pd 2. json文件中保存的格式 {"key1": "value1& ...

  9. html输出json对象属性值,用javascript中的HTML元素值构建JSON对象

    所以现在我在我的页面上有以下内容: 其中包括一个下拉菜单和一个输入文本字段.因此,我想从上面的HTML元素中创建一个JSON格式的javascript对象,这样我就可以得到如下内容: myObj = ...

最新文章

  1. 浏览器同源策略以及跨域请求时可能遇到的问题
  2. 虚拟键码对照表与ASCII对照表的区别
  3. Http协议规范及格式
  4. linux硬盘安装卡住,linux硬盘安装问题
  5. 数据结构之顺序表(C语言版)
  6. SDIO接口(3)——SDIO总线接口
  7. 2021年危险化学品经营单位主要负责人新版试题及危险化学品经营单位主要负责人考试试题
  8. android 谷歌地图显示空白,.android谷歌地图显示空白网格与缩放选项
  9. canvas 的绘图模式 retained-mode(保存模式) 和 immediate-mode (立即模式)
  10. windows server2008 设置允许特定端口通过防火墙
  11. 全能在线APP一款开源的多功能在线学习考试智慧软件系统
  12. android使用ffmpeg生成有声图片,多张图片添加音频文件合成mp4文件
  13. “单词竞猜游戏之管理员端”补充版
  14. 远程抹掉iPhone
  15. Java.SpringBoot InputStream流复制.
  16. 淘宝客网站防止黑客修改PID码的方法
  17. unity android光照贴图格式,光照贴图参数
  18. 《牛客网刷题之零基础入门前端之JavaScript》
  19. Ceph cache tier 中 flush 和 evict 机制源码分析
  20. ManGe Commander 文档 v0.3

热门文章

  1. SOLIDWORKS: Visualize SOLIDWORKS:可视化 Lynda课程中文字幕
  2. 手机link.php,PHP中通过HTTP_USER_AGENT判断是否为手机移动终端的函数代码
  3. 手动杀掉AUTORUN病毒.
  4. STM32 学习笔记1-智能小车-基于PWM 调速 的电机设置
  5. 廖雪峰Git学习笔记(上)
  6. windows系统删除无用的服务
  7. 【Android】RXAndroid
  8. c语言strlen用法,如何使用c语言中的strlen()函数
  9. android chrome html,在桌面chrome中调试android设备中的web页面
  10. 影院电影售票管理系统