ジェーソンめも
とりあえず実装を急ごう
適当に機能を試してみるメモ。
json_object jstring = json_object_new_string("\t"); printf("string=%s\n", json_object_get_string(jstring)); printf("string.to_string()=%s\n", json_object_to_json_string(jstring));
jstringオブジェクトに\tの文字列を挿入
json_object_get_stringで\tは実際のタブとして出力
json_object_to_json_stringで"\t"としての文字列で表示
json_object jint = json_object_new_int(9); printf("int=%d\n", json_object_get_int(my_int)); printf("int.to_string()=%s\n", json_object_to_json_string(my_int));
intをjsonオブジェクトに挿入
json_object_get_intでintとして扱う
json_object_to_json_stringでStringとして扱う
json_object jarray = json_object_new_array(); json_object_array_add(jarray, json_object_new_int(1)); json_object_array_add(jarray, json_object_new_int(2)); json_object_array_put_idx(jarray, 3, json_object_new_int(4));
jsonobjectを配列(?)で作成
[0]に1を、[1]に2を、idxで[3]を指定して5を追加
[0] = 1 [1] = 2 [2] = null [3] = 4
となる
for(i=0; i < json_object_array_length(jarray); i++) { struct json_object *jobj = json_object_array_get_idx(jarray, i); printf("[%d]=%s\n", i, json_object_to_json_string(jobj)); }
全部を参照する場合json_object_array_lengthで全体の長さを得る
json_object jobject = json_object_new_object(); json_object_object_add(jobject, "abc", json_object_new_int(123)); json_object_object_add(jobject, "bool", json_object_new_boolean(1)); json_object_object_add(jobject, "str", json_object_new_string("hoge")); json_object_object_del(jobject, "str"); json_object_object_add(jobject, "arr", jarray);
jsonobjectをobjectとしてnew
intオブジェクトを追加
booleanオブジェクトを追加
stringオブジェクトを追加
strのキーのオブジェクトを削除
さっき作った配列を追加
json_object_object_foreach(jobject, key, val) { printf("\t%s: %s\n", key, json_object_to_json_string(val)); }
json_object_object_foreachで全データを参照
abc: 123 bool1: true arr: [ 1, 2, null, 4 ]
と出力される。
json_object_put(jobj);
それぞれで使い終わったオブジェクトは開放する