前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >c语言解析json字符串(json对象转化为字符串)

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

作者头像
全栈程序员站长
发布2022-07-31 17:47:20
1.9K0
发布2022-07-31 17:47:20
举报

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

如题,根据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.cn/127408.html原文链接:https://javaforall.cn

本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022年4月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一,对于最简单的json类型,可以使用如下方法
    • 1.使用JsonReader类,示例代码如下
      • 2.使用JObject类,示例代码如下:
      • 二,对于复杂的json类型,使用如下方法
        • 1.使用JArray类(主要针对数组形式的json字符串),示例代码如下:
          • 2.使用JObject类(主要是嵌套类型),示例代码如下:
          • 三,使用Newtonsoft.Json命名空间下的方法,示例代码如下:
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
          http://www.vxiaotou.com