JSON中List,Map的数据格式详解
json
适用于现代 C++ 的 JSON。
项目地址:https://gitcode.com/gh_mirrors/js/json
免费下载资源
·
JSON 是一种轻量级的数据交换格式。它是基于javascript语法标准的一个子集。JSON是一种轻量级的数据交换格式。JSON采用完全独立于语言的文本 格式,可以很容易在各种网络、平台和程序之间传输。JSON的语法很简单,易于人阅读和编写,同时也易于机器解析和生成。 要想熟练的操作json数据,就要先了解json数据: JSON的规则很简单:对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’对”之间使用“,”(逗号)分隔。 规则如下: 1、映射用冒号(“:)表示。名称:值 2、并列的数据之间用逗号(“,”)分隔。名称1:值1,名称2:值2 3、映射的集合(对象)用大括号(“{}”)表示。 { 名称1:值1, 名称2:值2 } 4、并列数据的集合(数组)用方括号(“[]”)表示。 [ {名称1:值,名称2:值2}, {名称1:值,名称2:值2} ] 5、元素值可具有的类型:string,number, object, array, true, false, null 注意:1、JSON 用冒号(而不是等号)来赋值。每一条赋值语句用逗号分开。整个对象用大括号封装起来。可用大括号分级嵌套数据。 2、对象描述中存储的数据可以是字符串,数字或者布尔值。对象描述也可存储函数,那就是对象的方法。 6、JSON主要有两种数据结构 (1)由key–value对组成的数据结构。这种数据结构在不同的语言中有不同的实现. 例如:在javascript中是一个对象.而在java中是一种Map结构,c语言中是struct,其它的语言中可能为record、hash table 等。 (2)有序集合、这种数据结构在不同语言中可能有list、vertor、数组和序列等实现。 7、C#中json数据格式的处理 List转Json
public static string Obj2Json(T data)
{
try
{
System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(data.GetType());
using (MemoryStream ms = new MemoryStream())
{
serializer.WriteObject(ms, data);
return Encoding.UTF8.GetString(ms.ToArray());
}
}
catch
{
return null;
}
}
Json转List
public static Object Json2Obj(String json,Type t)
{
try
{
System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(t);
using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json)))
{
return serializer.ReadObject(ms);
}
}
catch
{
return null;
}
}
}
DataTable 转Json
public static string DataTable2Json(DataTable dt)
{
if (dt.Rows.Count == 0)
{
return "";
}
StringBuilder jsonBuilder = new StringBuilder();
// jsonBuilder.Append("{");
//jsonBuilder.Append(dt.TableName.ToString());
jsonBuilder.Append("[");//转换成多个model的形式
for (int i = 0; i < dt.Rows.Count; i++)
{
jsonBuilder.Append("{");
for (int j = 0; j < dt.Columns.Count; j++)
{
jsonBuilder.Append(""");
jsonBuilder.Append(dt.Columns[j].ColumnName);
jsonBuilder.Append("":"");
jsonBuilder.Append(dt.Rows[i][j].ToString());
jsonBuilder.Append("",");
}
jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
jsonBuilder.Append("},");
}
jsonBuilder.Remove(jsonBuilder.Length - 1, 1);
jsonBuilder.Append("]");
// jsonBuilder.Append("}");
return jsonBuilder.ToString();
}
单个对象转JSON
public static T Json2Obj(string json)
{
T obj = Activator.CreateInstance();
using (System.IO.MemoryStream ms = new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(json)))
{
System.Runtime.Serialization.Json.DataContractJsonSerializer serializer = new System.Runtime.Serialization.Json.DataContractJsonSerializer(obj.GetType());
return (T)serializer.ReadObject(ms);
}
}
GitHub 加速计划 / js / json
41.72 K
6.61 K
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:1 个月前 )
960b763e
2 个月前
8c391e04
5 个月前
更多推荐
已为社区贡献6条内容
所有评论(0)