用C语言解析JSON数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用C语言解析JSON数据相关的知识,希望对你有一定的参考价值。

例如字符串为 "\"name\":\"aaa\",\"password\":\"123456\""
如何把他们解析到一个字符串数组里面
我现在用了一个很傻瓜的算法,大家有没有更好的方法

参考技术A http://www.json.org/
列出了一堆C语言的JSON库。

C:
JSON_checker.
YAJL.
js0n.
LibU.
json-c.
json-parser.
jsonsl.
WJElement.
M's JSON parser.
cJSON.
Jansson.
jsmn.
cson.
parson.
ujson4c.
nxjson.
frozen.追问

。。。
这个用不上,我只需要解析很简单的JSON数据,要用在windows centos上面,所以想统一

如何生成和解析json格式数据

参考技术A JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript的一个子集。
JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript,
Perl, Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,json生成的数据量比XML 还要少一些,所以很多公司传输数据喜欢用JSON数据格式 。

1、下面通过一个简单的例子来说明JSON 的解析
String strJson = "\"students\":[\"name\":\"luci\",\"age\":23, \"name\":\"jack\",\"age\":25, \"name\":\"Kas\",\"age\":22]";
try
JSONObject mBj = new JSONObject(strJson);//生成对象
JSONArray mJsonArray = (JSONArray) mBj.get("students");//取得数据数组
for (int i = 0; i < mJsonArray.length(); ++i)
JSONObject mObject = (JSONObject) mJsonArray.get(i);
Log.d("log.d","name:" + mObject.getString("name") + "," + "age:"
+ mObject.getInt("age"));

catch (JSONException e)
e.printStackTrace();


json 数据解析小技巧,通过debug 方式查看对象数据格式。

2、json数据生成
try
JSONObject mBj=new JSONObject();
JSONArray mJsonArray=new JSONArray();
mBj.put("students", mJsonArray);//存入主对象

JSONObject mJSONObject1=new JSONObject();
mJSONObject1.put("name", "luci");
mJSONObject1.put("age", 23);

mJsonArray.put(mJSONObject1);//存入数组对象

Log.d("log.d", mBj.toString());

catch (JSONException e)
e.printStackTrace();

以上是关于用C语言解析JSON数据的主要内容,如果未能解决你的问题,请参考以下文章

JSON解析器json-c

(转)使用 CJSON 在C语言中进行 JSON 的创建和解析的实例讲解

C语言解析JSON源码

JSON数据格式C语言解析库(cJSON)的使用&在STM32上移植和使用

c如何解析json数据

易语言json解析