如何用Parson构造JSON数组?
How to construct JSON array with Parson?
我正在使用 Parson 库将传感器数据从 MCU 发送到服务器。我想生成以下 JSON,但 我不知道如何生成数组 ("sensors" 和 "measurements")。
{
"systemInfo:": {
"hubId": "1234",
"battery:": {
"value": 3.3,
"unit": "V"
}
},
"sensors": [
{
"name": "S1",
"measurements:": [
{
"measuredValue": "val",
"value": 123,
"unit": "unit"
}
]
},
{
"name": "S2",
"measurements": [
{
"measuredValue": "val1",
"value": 123,
"unit": "unit1"
},
{
"measuredValue": "val2",
"value": 123,
"unit": "unit2"
}
]
},
{
"name": "s3",
"measurements": [
{
"measuredValue": "val",
"value": 120,
"unit": "unit"
}
]
}
]
}
GitHub页面(serialization_example)上有一个例子,通过解析字符串生成数组:
json_object_dotset_value(root_object, "contact.emails",
json_parse_string("[\"email@example.com\", \"email2@example.com\"]"));
但我想使用 API 函数生成它,而不是像上面的示例那样手动构建字符串。例如,通过使用
json_object_set_string()
json_object_dotset_string()
json_object_dotset_number() etc.
可能吗?或者API不提供这个功能?
我没有找到解决问题的方法,而是找到了另一个库 cJSON,它可以满足我的需要。
我被困在同一点上,但当我查看 parson.h 和 parson.c 时,我发现了对 Json_Array 的支持。这里只是一个示例代码来提供帮助。
//creating a Json_Array
JSON_Value *branch = json_value_init_array();
JSON_Array *leaves = json_value_get_array(branch);
//creating measurement Json
JSON_Value *leaf_value = json_value_init_object();
JSON_Object *leaf_object = json_value_get_object(leaf_value);
json_object_set_number(leaf_object,"name1",123);
json_object_set_number(leaf_object,"name2",456);
json_object_set_number(leaf_object,"name3",789);
json_array_append_value(leaves,leaf_value);
希望对您有所帮助。
我正在使用 Parson 库将传感器数据从 MCU 发送到服务器。我想生成以下 JSON,但 我不知道如何生成数组 ("sensors" 和 "measurements")。
{
"systemInfo:": {
"hubId": "1234",
"battery:": {
"value": 3.3,
"unit": "V"
}
},
"sensors": [
{
"name": "S1",
"measurements:": [
{
"measuredValue": "val",
"value": 123,
"unit": "unit"
}
]
},
{
"name": "S2",
"measurements": [
{
"measuredValue": "val1",
"value": 123,
"unit": "unit1"
},
{
"measuredValue": "val2",
"value": 123,
"unit": "unit2"
}
]
},
{
"name": "s3",
"measurements": [
{
"measuredValue": "val",
"value": 120,
"unit": "unit"
}
]
}
]
}
GitHub页面(serialization_example)上有一个例子,通过解析字符串生成数组:
json_object_dotset_value(root_object, "contact.emails",
json_parse_string("[\"email@example.com\", \"email2@example.com\"]"));
但我想使用 API 函数生成它,而不是像上面的示例那样手动构建字符串。例如,通过使用
json_object_set_string()
json_object_dotset_string()
json_object_dotset_number() etc.
可能吗?或者API不提供这个功能?
我没有找到解决问题的方法,而是找到了另一个库 cJSON,它可以满足我的需要。
我被困在同一点上,但当我查看 parson.h 和 parson.c 时,我发现了对 Json_Array 的支持。这里只是一个示例代码来提供帮助。
//creating a Json_Array
JSON_Value *branch = json_value_init_array();
JSON_Array *leaves = json_value_get_array(branch);
//creating measurement Json
JSON_Value *leaf_value = json_value_init_object();
JSON_Object *leaf_object = json_value_get_object(leaf_value);
json_object_set_number(leaf_object,"name1",123);
json_object_set_number(leaf_object,"name2",456);
json_object_set_number(leaf_object,"name3",789);
json_array_append_value(leaves,leaf_value);
希望对您有所帮助。