我正在尝试解析json数组,我遇到了问题。
我的数组是这样的:
configure:{“id”:4,“userId”:107,“deviceMacAddress”:“00:06:66:30:02:3C”,“药物”:
[{ “ID”:11, “版本”:18, “姓名”: “NAME1”, “单元”: “毫克”, “形成”: “FOR1”, “日程表”:[1]}, { “ID”:45, “版本”:1, “名称”: “sdga” ,, “单元”: “毫克”, “形成”: “54234”, “日程表”:[0,1,2,3 ,4,5,6]}],
我能够访问药物数组并打印总数组,但无法访问数组内的对象。你可以使用C语言建议任何解决方案或任何例子吗?
答案 0 :(得分:1)
我会给你一块骨头。当您找到表示文本中元素开头的符号时,请调用一个知道如何处理该类型元素的函数 - 哈希,数组,字符串,数字等(http://www.json.org/)。现在你想要处理像哈希这样的东西取决于你,而C使得很容易很容易地存储不同类型的值,但是基本上在每个部分中,你返回代表它的对象并且它变成一个整体表示刚刚解析的json的数据结构。
非常伪代码:
parseJson(char* json) {
if json[0]=='['
parseJsonArray(json+1)
if json[0]=='{]
parseJsonArray(json+1)
if json[0]=='"'
parseJsonString(json+1)
...etc...
}
parseJsonArray(char* json) {
SomeSortOfList array = MakeListThing();
while *json != ']' {
if *json=='['
push(array, parseJsonArray(json+1))
if *json=='{'
push(array, parseJsonHash(json+1))
if *json=='"'
push(array, parseJsonString(json+1))
}
return array
}
..和其他功能..