本文目录一览:
JSON解析器json-c
JSON-C实现了一个引用计数对象模型,它允许您轻松地使用C语言来构建JSON对象,将它们输出为JSON格式的字符串,并将JSON格式字符串解析回JSON对象的C语言表示形式。它的目标是符合 RFC 7159 标准。
使用automake的编译过程如下:
使用cmake编译的过程如下:
cmake可选的几个编译选项为:
要使用json-c,最简单的方式是包含json.h头文件即可,或者最好是下列更具体的头文件之一:
详细且全面的API介绍文档:
JSON-C支持的JSON对象类型有7种:
下面系列函数用于创建一个JSON对象:
给JSON对象增加字段(不会增加引用计数):
删除json对象的指定字段,被删除的对象引用计数减去1,如果这个val没有更多的所有者,这个key对应的val被free,否则这个val的引用保存在内存中:
增加一个元素到json数组的末尾,obj引用计数不会增加,增加字段的方式更加紧凑;如果需要获取val的引用,需要用json_object_get()来传递该对象:
替换json数组中的值:
json数组的排序,这里需要自己写排序函数:
获取json对象的长度,依据字段的数目:
获取json对象的哈希表:
获取对象的数组列表:
获取json的类型:
获取json数组对象的长度:
获取json对象的bool值,int和double对象是0转换为FALSE,否则返回TRUE;非0长度的字符串返回TRUE;其他对象非空的话,返回TRUE:
获取json对象的长度,如果参数不是string类型的json,返回0:
按照索引获取json数组的对象:
转换json对象到c字符串格式:
获取JSON中指定类型的数值:
将字符串转换为json对象:
以下两个函数配合使用,前者获取该对象指针的所有权,引用计数加1,如果对象已经被释放,返回NULL;后者引用计数减1,如果对象已经被释放,返回1:
类型判断:
json_util.h提供了有关文件读写操作的函数,这个文件的内容是json格式的:
C#如何将datatable数据转换成json
/// summary
/// 将datatable转换为json
/// /summary
/// param name="dtb"Dt/param
/// returnsJSON字符串/returns
public static string Dtb2Json(DataTable dtb)
{
JavaScriptSerializer jss = new JavaScriptSerializer();
System.Collections.ArrayList dic = new System.Collections.ArrayList();
foreach (DataRow dr in dtb.Rows)
{
System.Collections.Generic.Dictionarystring, object drow = new System.Collections.Generic.Dictionarystring, object();
foreach (DataColumn dc in dtb.Columns)
{
drow.Add(dc.ColumnName, dr[dc.ColumnName]);
}
dic.Add(drow);
}
//序列化
return jss.Serialize(dic);
}
用C#语言将json格式数据转成json对象
把你的json字符串中的所有的 " 替换为 ""
比如我要在c#中声明一个字符串
{
"a":"1"
}
写法有两种
1
string json="{\r\n\"a\":\"1\"\r\n}”; //因为字符串需要用"" 来定义 所以其中的"要用\"来转义,而换行则是 \r\n
2
string json=@"{
""a"":""1""
}";
//使用@ 方式定义字符串,这种方式关闭了 \x 这种转义序列, 所以其中的" 要用另外一个"来转义 于是就变成了 ""