C#中的json格式字符串解析

2023-05-16

如题,根据json字符串的难易程度,C#提供的对应解析方法也不同,现做简单的归类总结:

一,对于最简单的json类型,可以使用如下方法

1.使用JsonReader类,示例代码如下

string meetingInfo = @"{""meetingid"" : ""123"", ""meetingname"" : ""abc""}";
JsonReader reader = new JsonTextReader(new StringReader(meetingInfo));
while (reader.Read()) {
Console.WriteLine(reader.TokenType + "\n" + reader.ValueType + "\n" + reader.Value);
}

2.使用JObject类,示例代码如下:

string meetingInfo = @"{""meetingid"" : ""123"", ""meetingname"" : ""abc""}";
JObject jm = JObject.Parse(meetingInfo);
string[] meetings = jm.Properties().Select(item => item.Value.ToString()).ToArray();

二,对于复杂的json类型,使用如下方法

1.使用JArray类(主要针对数组形式的json字符串),示例代码如下:

stringresultInfo = @"[{"id":"123","name":"abc"},{"id":"234","name":"def"}]";
JArray jf = (JArray)JsonConvert.DeserializeObject(resultInfo);
fileid = jf[0]["id"].ToString();
filename = jf[0]["name"].ToString();

2.使用JObject类(主要是嵌套类型),示例代码如下:

string resultInfo = @"{"meeting":{"id":"123","name":"abc"}}";
JObject jo = (JObject)JsonConvert.DeserializeObject(resultInfo);
string zone = jo["meeting"]["id"].ToString();
string zone_en = jo1["meeting"]["name"].ToString();

三,使用Newtonsoft.Json命名空间下的方法,示例代码如下:

private bool GetParameters() {
try {
var q = JsonConvert.DeserializeObject<ProtocolTO>(parameters);
if (q == null) return false;
id = q.id;
action = q.action;
fileid = q.fileid;
meetingid = q.meetingid;
type = q.type;
sourceid = q.sourceid;
status = q.status;
} catch {
return false;
}
return true;
}
public class ProtocolTO {
public string id { get; set; }
public string meetingid { get; set; }
public string fileid { get; set; }
public string sourceid { get; set; }
public string app { get; set; }
public string status { get; set; }
public string action { get; set; }
public string type { get; set; }
}


附录

json格式:

1、对象是一个无序的“‘名称/值’对”集合。
  例子:表示人的一个对象:
  {"姓名" : "abc","年龄" : "20"}
2、数组是值(value)的有序集合。
  例子:学生对象
  {"学生" :[{"姓名" : "小明" , "年龄" : "15"},{"姓名" : "tom" , "年龄" : "16"}]}
  json 对象数组:[{"姓名" : "小明" , "年龄" : "15"},{"姓名" : "tom" , "年龄" : "16"}]
3、值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。
4、字符串(string)是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C#中的json格式字符串解析 的相关文章

  • 使用把手显示来自 parse.com 的 json 响应

    我想将 json 响应传递给车把 我已经查看了解析文档和 stackoverflow 问题 但我似乎无法弄清楚这一点 这是回应 results address 755 W Yale createdAt 2013 02 09T01 12 15
  • 使用 Spring / JPA 写入 Postgres 数据库的 JSON 列

    我有一个名为 test 的表 其中包含 Postgres 9 3 中 json 类型的列 sample column 我正在尝试使用 Spring JPA 将以下内容写入列中 name 更新的名称 我在其他帖子中读到 我需要添加自定义转换器
  • Rails:format.js 或 format.json,或两者?

    可能很明显 但我仍然缺乏基本知识 那么在控制器内部 两者都可以使用 还是总是 Javascript 所以两者是相同的 json and js是两种不同类型的响应 它们在 Rails 中被定义为不同的 MIME 类型 Mime Type re
  • 我如何在 C# .NET(win7 手机)中使用“DataContractJsonSerializer”读入“嵌套”Json 文件?

    我有一个问题 如果我的 json 文件看起来像这样 Numbers 45387 Words 空间桶 我可以很好地阅读它 但是如果它看起来像这样 Main Numbers 45387 Words 空间桶 某事 数字 12345 单词 克兰斯基
  • 无法从 JSON 请求获取数据,尽管我知道它已返回

    我试图获取从 getJSON 返回的数据 但我无法让它工作 我已经在 search twitter API 上尝试了相同的代码 效果很好 但它不适用于其他网站 我知道数据已返回 因为我在使用检查器时可以找到它 我通过检查器找到的值是 id
  • Angular 4 显示其中的数据

    我不喜欢从 API 返回到我的 Angular 4 应用程序的数据 这是 JSON 的示例 我不关心美元 但这是我正在处理的数据类型 最终目标是在页面上展示 Coin Price BTC 4 281 28 ETH 294 62 etc JS
  • DbGeography 多边形到 JSON

    我将 DbGeography 多边形存储在数据库中 我的控制器从数据库获取多边形 我需要将它们转换为 JSON var polygons db Areas Where x gt x Type type Select x gt new Vie
  • 将 JSON 反序列化为表

    我需要根据通过 API 接收的数据填充 ABAP 中的表 我正在使用以下 ABAP 函数从 json 填充现有的 ABAP 表 JSON 是正确的 表中包含相应的表 ui2 cl json gt deserialize EXPORTING
  • Azure 应用服务在配置中添加字符串数组

    Net core 应用程序并在 Azure 应用服务中部署该应用程序 在我的应用程序中 我有一个包含以下内容的应用程序 settings json 文件 Roles Roles Admins Users 我的 ARM 模板中有以下配置 参数
  • 处理 fanart.tv Web 服务响应 JSON 和 C#

    我正在尝试使用 fanart tv Webservice API 但有几个问题 我正在使用 Json Net Newtonsoft Json 并通过其他 Web 服务将 JSON 响应直接反序列化为 C 对象 这里的问题是元素名称正在更改
  • 使用 Python 将对象列表转为 JSON

    我在转换时遇到问题Object实例到 JSON ob Object list name scaping myObj base url u number page for ob in list name json string json du
  • C# Newtonsoft 反序列化 JSON 数组

    我正在尝试使用 Newtonsoft 反序列化数组 以便我可以在列表框中显示来自基于云的服务器的文件 但无论我尝试什么 我总是会收到此错误 Newtonsoft Json JsonReaderException 解析值时遇到意外字符 路径
  • 如何发送和接收大型 JSON 数据

    我对全栈开发比较陌生 目前正在尝试找出一种有效的方法send and fetch我的前端 React 和后端 Express 之间存在大量数据 同时最大限度地减少内存使用 具体来说 我正在构建一个地图应用程序 它需要我处理大型 JSON 文
  • 在 Node.js 中解析 Json(带有数组和对象)并将数据导出到 Excel 文件中

    我是 Node js 新手 我的要求是 我需要解析 JSON 并将数据导出到 Excel 文件中 其中包含 JSON 中的所有字段 我的 JSON 如下 id 1255 title The Brain and Nervous System
  • 使用python将json和文件发送到flask

    我遇到这个问题 我试图在单个函数中向 Flask API 发送 接收一些文件和 JSON 在我的客户端 发件人 上我有 my json to be sent datas var1 var1 var2 var2 my file to be s
  • 如何将此数据编码为 JSON 中的父/子结构

    我正在使用 d3 js 将动物 有机体 家族 一次最多 4000 个 可视化为树形图 尽管数据源也可以是目录列表或命名空间对象列表 我的数据如下 json organisms name Hemiptera Miridae Kanakamir
  • 使用 NewtonSoft 在一行中生成 JSON 对象

    我正在使用 JSON 库牛顿软件 http nuget org packages newtonsoft json生成 JSON 字符串 JObject out JObject FromObject new typ photos return
  • 来自 iPhone/iPad 的 json Web 服务

    有人可以帮助我解决如何从 iphone 或 ipad 使用 json Web 服务的问题吗 这里我的要求是使用 API 密钥实现 json webservice 如果可能的话发布一些教程或示例链接 谢谢 规范的 JSON 处理库是here
  • 为什么 PyYAML 花费这么多时间来解析 YAML 文件?

    我正在解析一个大约 6500 行的 YAML 文件 格式如下 foo1 bar1 blah name john age 123 metadata whatever1 whatever whatever2 whatever stuff thi
  • jolt变换后json对象的排序

    Input The input json object 所需输出 Event1 Value1 Event2 collection of json objects Event3 The input json object 所以基本上输入 js

随机推荐

  • 发现scikit-image

    我是图形方面的新手 xff0c 写错的地方还请大家勘正 不记得从哪看到openCV与python的东西 xff0c 突然产生兴趣 xff0c 我喜欢python3 xff0c 但openCV偏偏最高只有python 2 7的支持 openC
  • Jetpack的学习

    一 ViewModel ViewModel的一个重要作用就是帮助Activity分担一部分的工作 xff0c 专门存放关于界面相关的数据 只要界面上能看到的数据 xff0c 都应该存放到ViewModel中 另外一个很重要的特性就是当手机屏
  • 【centOS 7一个解决“network.service: control process exited, code=exited status=1”方法】

    当我们用finalshell时 xff0c 发现连接不上 xff0c 用ip addr查看时 xff0c ens33没有ip xff0c 查看日志 一开始以为是没有开始网卡 xff0c 于是进入修改网卡配置参数 xff0c 修改 ONBOO
  • Ubuntu 20.04桌面文件夹图标消失及文件系统无法打开

    前言 之前遇到过服务器上桌面图标突然消失的情况 在更换系统语言之后 xff0c 桌面出现过一次这种情况 xff0c 经过重启之后就恢复了 再后来又莫名其妙出现了这么个问题 xff0c 最开始搜索的解决方案是 让你打开任务管理器 gnome
  • vim打造最强systemverilog编辑器

    更多分享内容可访问我的个人博客 https www niuiic top 更新 xff1a 1 对自动补全部分进行加强 xff0c 可以无限自定义snippets和keywords 补全能力完胜vscode 2 使用svlangserver
  • 修改CentOS VNC分辨率

    修改VNC分辨率有两个地方 1 etc sysconfig vncservers 2 usr bin vncserver 有些机器直接设置了这里就行 xff0c 有些要通过设置2才行
  • Debian11系统安装与配置Elasticsearch7.17.6

    安装方式 xff1a 使用安装包进行离线安装 1 下载安装包 下载地址 xff1a Elasticsearch 7 17 6 Elastic 选择DEB X86 64 xff0c 下载后得到文件elasticsearch 7 17 6 am
  • Windows Server 2012 R2 管理员密码忘记如何修改密码

    管理员密码忘记如何修改 人非圣贤孰能无过 有时我们经常会遇到忘记密码的尴尬场景 尤其是本机的管理员密码忘记 xff0c 那么如何更改恢复呢 xff1f xff08 如果你安装系统的过程中本身没有设置过密码 xff0c 那密码就为空或者为Ad
  • XPath 简单语法 (三)

    XPath表达式 2008 02 27 16 55 XML 文档对象模型 DOM 能够以编程方式读取 处理和修改 XML 文档 XPath 表达式 XPath 表达式使用路径表示法 xff08 与 URL 中使用的路径表示法类似 xff09
  • Error: cannot open display: localhost:0.0

    https stackoverflow com questions 12356425 error cannot open display localhost0 0 trying to open firefox from centos 6 在
  • MySQL 5.6 源码目录结构

    基于MySQL 5 6 26源码 源码目录 xff1a BUILD 构建工程的脚本 client 客户端 cmake cmd line utils 命令行工具 dbug 调试库 Docs 文档 extra 一些相对独立的次要工具 inclu
  • 计算机I/O原理

    cpu通过IO命令控制设备 xff0c cpu对设备的控制仅仅可以到达设备控制器 xff0c 无法直接控制设备 设备无法直接和cpu通信 xff0c 设备控制器通过中断机制向cpu反馈信息 即这个一个模型 CPU IO指令 gt 设备控制器
  • 计算机的I/O端口地址表

    PC的I O端口地址表 xff08 I O端口地址表 xff09 http tieba baidu com f kz 61 16042340 I O端口地址表 PC只用了10位地址线 A0 A9 进行译码 xff0c 其寻址的范围为0H 3
  • 利用pthread进行数组求和

    POSIX thread 简称为pthread xff0c Posix线程是一个 POSIX 标准线程 利用多线程可以提高运算速度 利用pthread进行数组求和的程序如下 xff1a include lt stdio h gt inclu
  • 字符串的全排列程序

    include lt iostream gt include lt cstring gt using namespace std void swap char str int i int j char tmp 61 str i str i
  • Google面试总结

    分享 Google面试总结 来源 xff1a 王冠中的日志 终于把Google的面试给搞完了 xff0c 感觉可以算是Tech Interview的顶峰了 这里主要写一下大概流程和内容 xff0c 给大家以后interview一个参考 G的
  • sql server中的注释快捷键

    sql server中的注释快捷键 注释 xff1a Ctrl 43 K Ctrl 43 C xff08 按住Ctrl 然后K C xff09 取消注释 xff1a Ctrl 43 K Ctrl 43 U xff08 按住Ctrl 然后K
  • SpringMVC统一异常处理(返回异常数据而不是跳转到某个页面的方法)

    关于SpringMVC统一异常处理的问题 xff0c 网搜一大把 网上搜的关于如何进行统一异常处理不外乎如下三种方式 xff1a Spring MVC处理异常有3种方式 xff1a 1 使用Spring MVC提供的简单异常处理器Simpl
  • Entity Framework 6.0 Code First

    目录 一 安装 Entity Framework1 安装安 EF NuGet 包2 从包管理器控制台安装 二 创建模型三 创建上下文四 读取和写入数据五 迁移 一 安装 Entity Framework 新建基于 Net Framework
  • C#中的json格式字符串解析

    如题 xff0c 根据json字符串的难易程度 xff0c C 提供的对应解析方法也不同 xff0c 现做简单的归类总结 xff1a 一 xff0c 对于最简单的json类型 xff0c 可以使用如下方法 1 使用JsonReader类 x