私は、次のJSONリクエストに読み取るために、デイヴ・ギャンブルによって書かれた、cJSONライブラリを使用しようとしています:私は、コードの下に使用することにより、「ID」と「方法」を取得することができる午前C:Jsonリクエストから値を解析するには?
{"id":"8358441244995838759","jsonrpc":"2.0","method":"addext",
"params":["<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>
<trunks id=\"0\"><end_ch>3</end_ch>
<gateway>172.20.222.52</gateway>
<interface_type>E231</interface_type>
<name>Mumbai_Avaya</name>
<start_ch>12</start_ch>
<sub_type>E1PRI</sub_type></trunks>"]}
が、 XMLストリングである "params"の中の値を取得または印刷することはできません。 "params"の中には何でも印刷したいです。
cJSON *cjson, *method_obj;
char *methodname;
char *params;
cjson = cJSON_Parse(buf);
method_obj = cJSON_GetObjectItem(cjson, "method");
methodname = method_obj->valuestring;
printf("method name %s\n", methodname);
method_obj = cJSON_GetObjectItem(cjson, "id");
id = method_obj->valueint;
char *str = method_obj->valuestring;
printf("id %s\n", str);
method_obj = cJSON_GetObjectItem(cjson, "params");
params=method_obj->valuestring;
printf("Params [ ] %s\n", params);
ご提案ください。
ありがとうございました。
' "のparams"'タイプは、Arrayです。 – BLUEPIXY
正確にはわからないが、オブジェクトをxml文字列に変換してリクエストを送信しているJavaコードからこのリクエストを受け取っている。 – Neeraj