c语言解析json字符串(json对象转化为字符串)

如题,根据json字符串的难易程度

大家好,又见面了,我是你们的朋友全栈君。

如题,根据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字符的集合,使用反斜线转义。








版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/127408.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • Tomcat安装(详细)

    Tomcat安装(详细)1、Tomcat下载安装​ 1、安装​ (一)Tomcat官网下载​ (二)解压​ (三)配置环境变量​ (四)启动-关闭Tomcat ​ (五)访问测试Tomcat输入http://localhost:8080网页打不开​ 2、了解配置文件及目录结构可以配置启动端口号默认端口号:8080MySQL默认:3306http:80https:443<Connectorport=”8080″protocol=”HTTP/1.1

    2022年9月14日
  • 极限学习机(Extreme Learning Machine)概述

    极限学习机(Extreme Learning Machine)概述摘要当今研究领域的一项事实就是,前向神经网络(feed-forwardneuralnetworks)的训练速度比人们所期望的速度要慢很多。并且,在过去的几十年中,前向神经网络在应用领域存在着很大的

    2022年8月4日
  • JavaScript语言基础知识7

    JavaScript语言基础知识7

    2022年1月7日
  • Log4j.properties配置文件详解「建议收藏」

    Log4j.properties配置文件详解「建议收藏」Log4J的配置文件(ConfigurationFile)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。1.配置文件Log4J配置文件的基本格式如下:#配置根Loggerlog4j.rootLogger=[level],appenderName,appenderName1,…#配置日志信息输出目的地Appender及Appender选项log4j.a

    2022年9月30日
  • hashlib模块[通俗易懂]

    hashlib模块[通俗易懂]hashlib模块一、数据安全二、hash结构三、hashlib用法简单使用实例importhashlib#md5的使用res=hashlib.md5(‘淘气包’.encode())#res=hashlib.new(‘md5′,’淘气包’.encode())#使用md5进行加密print(res)#<md5HASHobject@…

    2022年6月14日
  • nginx报错”worker_processes” directive is duplicate

    nginx报错”worker_processes” directive is duplicatenginx报错”worker_processes” directive is duplicate

    2022年4月24日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号