最近,遇到了一些不同的Json格式的数据,需要做不同处理才能转化为想要得到的结果,这里总结一下。

第一种形式:status中是{}形式,对象

string json =
@"{'name':'Tom','province':'32','city':'1','location':'江苏 南京','status':{'created_at':'Thu Feb 26 21:04:34 +0800 2015','text':'哈哈'}}";

针对以上格式的数据,创建如下的两个结构体或类

     public struct Status
{
public string created_at { get; set; }
public string text { get; set; }
} public struct JsonData
{
public string name { get; set; }
public string province { get; set; }
public string city { get; set; }
public string location { get; set; }
public Status status;
}

输出结果:

1   JavaScriptSerializer jsSerializer=new JavaScriptSerializer();
2  JsonData jd = jsSerializer.Deserialize<JsonData>(json);
3   Response.Write(string.Format("name={0};province={1};city={2};location={3};status={4};",jd.name,jd.province,jd.city,jd.location,jd.status.created_at+jd.status.text));

第二种形式:status中是[]形式,数组

string json =
@"{'name':'Tom','province':'32','city':'1','location':'江苏 南京','status':[{'created_at':'Thu Feb 26 21:04:34 +0800 2015','text':'哈哈'}]}";

针对以上格式的数据,创建如下的两个结构体或类

   public struct Status
{
public string created_at { get; set; }
public string text { get; set; }
}
public struct JsonData2
{
public string name { get; set; }
public string province { get; set; }
public string city { get; set; }
public string location { get; set; }
public List<Status> status;
}

输出结果

      JavaScriptSerializer jsSerializer=new JavaScriptSerializer();
JsonData2 jd = jsSerializer.Deserialize<JsonData2>(json);
Response.Write(string.Format("name={0};province={1};city={2};location={3};status={4};",jd.name,jd.province,jd.city,jd.location,jd.status[].created_at+jd.status[].text));

项目应用:

json字符串:

    {
"depart_id": ,
"depart_name": "人事部",
"depart_source": "[{\"text\": \"\", \"type\": \"text\"},{\"text\": \"\", \"type\": \"image\"},{\"text\": \"\", \"type\": \"audio\"}]",
"staff": {
"name": "谭琳",
"title": "部门经理",
"image": "/2015/1/13/d2e2e3f2c2f8_2e4f5b.jpg",
"id":
}
}

创建类:

 public class DepatData
{
public int depart_id = ;
public string depart_name = "";
public string depart_source = "";
public StaffData staff =new StaffData(); public class StaffData
{
public string name = "";
public string title = "";
public string image = "";
public string id = "";
}
}

解析Json数据:

         DepatData d = JsonConvert.DeserializeObject<DepatData>(strJson);
List<Dictionary<string, string>> depart_source =
JsonConvert.DeserializeObject < List<Dictionary<string, string>>>(d.depart_source); //获取值
int depart_id = d.depart_id;
.......
string text = depart_source[]["text"];
string type = depart_source[]["type"];
.......

C#解析Json格式数据小结的更多相关文章

  1. 解析json格式数据

    实现目标 读取文件中的json格式数据,一行为一条json格式数据.进行解析封装成实体类. 通过google的Gson对象解析json格式数据 我现在解析的json格式数据为: {",&qu ...

  2. 实现android上解析Json格式数据功能

    实现android上解析Json格式数据功能,该源码转载于安卓教程网的,http://android.662p.com ,个人感觉还不错的,大家可以看看一下吧. package com.practic ...

  3. 用GSON解析Json格式数据

    GSON是谷歌提供的开源库,用来解析Json格式的数据,非常好用.如果要使用GSON的话,则要先下载gson-2.2.4.jar这个文件,如果是在Android项目中使用,则在Android项目的li ...

  4. $Java-json系列(一):用GSON解析Json格式数据

    GSON是谷歌提供的开源库,用来解析Json格式的数据,非常好用.如果要使用GSON的话,则要先下载gson-2.2.4.jar这个文件,如果是在Android项目中使用,则在Android项目的li ...

  5. ObjectMapper用于将java对象转换为json格式数据以及JSONObject对象解析json格式数据

    ObjectMapper objectMapper = new ObjectMapper(); //反序列化的时候如果多了其他属性,不抛出异常 objectMapper.configure(Deser ...

  6. C# 解析JSON格式数据

    JSON简介 JSON(全称为JavaScript ObjectNotation) 是一种轻量级的数据交换格式.它是基于JavaScript语法标准的一个子集.JSON采用完全独立于语言的文本格式,可 ...

  7. Android 解析JSON格式数据

    比起XML,JSON主要优势在于它的体积更小,在网络上传输的时候可以更省流量.但缺点在于,它的语义性较差,显示不如XML直观. JSON格式 :  { "name_A" : &qu ...

  8. 【转】C# 解析JSON格式数据

    http://blog.csdn.net/coolszy/article/details/8606803 JSON简介 JSON(全称为JavaScript ObjectNotation) 是一种轻量 ...

  9. Android中解析JSON格式数据常见方法合集

    待解析的JSON格式的文件如下: [{"id":"5", "version":"1.0", "name&quo ...

随机推荐

  1. IPv6 sokcet 编程

    IPv6的数据包包头与IPv4的数据包头不一样,所以在IPv6下的socket编程用到的某些结构体和地址转换函数也与IPv4下的socket编程不一样.涉及的结构体有:IPv4中使用sockaddr/ ...

  2. JSF教程(10)——生命周期之Update Model Values Phase

    在整个JSF生命周期中经历了取值.验证的阶段终于从request中拿到合理的值,以下就是在本阶段给相应的服务端对象(ManageBean)赋值了.JSF实现仅仅是去更新和input组件中value属性 ...

  3. SAP BW顾问如何保持市场竞争力

    跟大部分电工一样,SAP顾问也经常有迷茫的时候.因为,这个世界变化实在太快了.每一个电工,总是在担心自己会不会被飞速发展的技术所淘汰.那么,作为 一个BW顾问,应该如何保持市场竞争力呢?我觉得需要两个 ...

  4. .Net语言 APP开发平台——Smobiler学习日志:开发APP时,如何快速地实现屏幕自适应

    最前面的话:Smobiler是一个在VS环境中使用.Net语言来开发APP的开发平台,也许比Xamarin更方便 一.属性介绍 设置控件在客户端屏幕可见并超出客户端屏幕时,是否自动调节高度以适应屏幕高 ...

  5. 401 Palindromes(回文词)

      Palindromes  A regular palindrome is a string of numbers or letters that is the same forward as ba ...

  6. Android开发 将数据保存到SD卡

    前言: 使用Activity的openFileOutput()方法保存文件,文件是存放在手机空间上,一般手机的存储空间不是很大,存放些小文件还行,如果要存放像视频这样的大文件,是不可行的.对于像视频这 ...

  7. 《Linux内核设计与实现》读书笔记

    http://www.cnblogs.com/wang_yb/tag/linux-kernel/

  8. PHP做好防盗链的基本思想 防盗链的设置方法

    盗链是指服务提供商自己不提供服务的内容,通过技术手段绕过其它有利益的最终用户界面(如广告),直接在自己的网站上向最终用户提供其它服务提供商的服务内容,骗取最终用户的浏览和点击率.受益者不提供资源或提供 ...

  9. String StringBuilder以及StringBuffer

    例一:[看了威哥视频,下面更好理解] package sunjava; public class String_test { public static void main(String[] args ...

  10. Python 计算程序运行时间

    import time def start_sleep():    time.sleep(3) if __name__ == '__main__':    #The start time     st ...