json 数组
Json对象和json数组的反序列化方式不同:
先简单介绍一下对象和数组区别:
花括号的是对象,数组不用解释,想获取到数组中每一个元素就得遍历数组:
目的:将类似这样的json数据转为对象,然后获取到红色框和绿色框的值;
新建一个控制台应用程序
一、生成这个Json对应的实体类
将这个json数据复制,然后在Vs里面新建一个类,编辑—>选择性粘贴—>json
并将红色框这里的数组改为List
二、在项目中引用
三、将Jsoon数据反序列化
运行结果:
demo:
public void testJsonToObject()
{
String jsonStr = "{\"name\":\"BeJson\",\"url\":\"http://www.bejson.com\",\"links\":[{\"entityName\":\"Google\",\"shop\":\"http://www.google.com\"},{\"entityName\":\"Baidu\",\"shop\":\"http://www.baidu.com\"}]}";
System.Web.Script.Serialization.javaScriptserializer js = new System.Web.Script.Serialization.JavaScriptSerializer();
Test.Testjsonobject jsonObj = js.Deserialize<Test.TestJsonObject>(jsonStr);//反序列化
if(jsonObj.name== "BeJson")
{
List<Beer2dFire.Link> linkData = jsonObj.links;
foreach (Beer2dFire.Link item in linkData)
{
String entityName = item.entityName;
String shop = item.shop;
System.console.WriteLine("link里面的数据为entityName:" + entityName + ",shop:" + shop);
}
}
}
二:
取到Json中的Json的值即取到下图中的street这类值
将这个Json数据创建一个Json实体类
然后反序列化为对象
public class TestJsonArr
{
public string name { get; set; }
public string url { get; set; }
public int page { get; set; }
public bool isNonProfit { get; set; }
public Address address { get; set; }
public List<LinkTwo> links { get; set; }
}
public class Address
{
public string street { get; set; }
public string city { get; set; }
public string country { get; set; }
}
public class LinkTwo
{
public string linksName { get; set; }
public string linksUrl { get; set; }
}
然后在另一个类中写方法:
public String testJson()
{
String jsonStr = "{\"name\":\"BeJson\",\"url\":\"http://www.bejson.com\",\"page\":88,\"isNonProfit\":true,\"address\":{\"street\":\"科技园路.\",\"city\":\"江苏苏州\",\"country\":\"中国\"},\"links\":[{\"linksName\":\"Google\",\"linksUrl\":\"http://www.google.com\"},{\"linksName\":\"Baidu\",\"linksUrl\":\"http://www.baidu.com\"},{\"linksName\":\"SoSo\",\"linksUrl\":\"http://www.SoSo.com\"}]}";
System.Web.Script.Serialization.JavaScriptSerializer js = new System.Web.Script.Serialization.JavaScriptSerializer();
TestJsonArr jsonArr = js.Deserialize<TestJsonArr>(jsonStr);
String name = jsonArr.name;
String url = jsonArr.url;
//adress里面的数据
String street = jsonArr.address.street;
String city = jsonArr.address.city;
//links里面的数据
List<LinkTwo> linkTow = jsonArr.links;
String linkStr = "";
foreach(LinkTwo item in linkTow)
{
String linksName = item.linksName;
String linksUrl = item.linksUrl;
linkStr = linksName + "," + linksUrl;
}
Console.WriteLine("name为:" + name + "------url为:" + url + "------address里面的street为:" + street + ",------" + city + "------links里面的数据为:" + linkStr);
Console.WriteLine();
return linkStr;
}
运行结果为:
相关阅读
使用FastJson对JSON字符串、JSON对象及JavaBean之间的
maven依赖包: <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --><dependency><groupId>com.alibaba</groupId><a
jquery的$().each,$.each 遍历对象和数组
原文链接 http://www.frontopen.com/1394.html在jquery中,遍历对象和数组,经常会用到$().each和$.each(),两个方法。两个方法是有区
string A=to_string(a)求长度C/C++ strlen(str)和str.length()和str.size()都可以求字符串长度。其中str.length()和str.size()是
以前我这样初始化一个数组,并自我感觉良好:int a[5] = { 0 }; // 全部初始化为0这种简单的写法让我非常爽,于是我又想把数组全部初
1. 定义及初始化 1. 1动态初始化(声明并开辟数组) 数组类型[] 数组名 = new 数据类型[数组长度]; 其中,数据类型可以是8种基本的