2017-04-07 10 views
0

私はcJSONライブラリ(https://github.com/DaveGamble/cJSON)を使用しています。このようなJSONと本体の例要求の場合:cJSON C++ - アイテムオブジェクトを追加する

{ 
    "user": { 
    "name":"user name", 
    "city":"user city" 
    } 
} 

私はこのようなオブジェクトとその作品を追加:

cJSON *root; 
cJSON *user; 

root = cJSON_CreateObject(); 
cJSON_AddItemToObject(root,"user", user = cJson_CreateObject()); 
cJSON_AddStringToObject(user, "name", name.c_str()); 
cJSON_AddStringToObject(user, "city", city.c_str()); 

をしかし、今、私は少し異なる身体JSONを持っている:

{ 
    "user": { 
    "informations:"{ 
     "name1":"user name1", 
     "name2":"user name 2" 
    } 
    } 
} 

そして、このようなオブジェクトを追加してみてください:

cJSON *root; 
cJSON *user; 
cJSON *info; 

root = cJSON_CreateObject(); 
cJSON_AddItemToObject(root,"user", user = cJson_CreateObject()); 
cJSON_AddItemToObject(user,"informations", info = cJson_CreateObject()); 
cJSON_AddStringToObject(info, "name", name.c_str()); 
cJSON_AddStringToObject(info, "city", city.c_str()); 

cJSONを使ってこれを行う正しい方法は?その仕事と私は問題が私のC + +またはデータを送信する私のJavaクライアントで私のc + +サーバーを行う場合は知っていないので。

ありがとうございます。

答えて

0

指定していないが、コードが機能しない理由は、このコードでは、提供したサンプルが生成されるはずです。

#include <iostream> 
#include "cJSON.h" 

int main() { 
    cJSON *root; 
    cJSON *user; 
    cJSON *info; 

    std::string name1 = "user name1"; 
    std::string name2 = "user name 2"; 

    root = cJSON_CreateObject(); 
    cJSON_AddItemToObject(root,"user", user = cJSON_CreateObject()); 
    cJSON_AddItemToObject(user,"informations", info = cJSON_CreateObject()); 
    cJSON_AddStringToObject(info, "name1", name1.c_str()); 
    cJSON_AddStringToObject(info, "name2", name2.c_str()); 

    std::cout << cJSON_Print(root) << std::endl; 
    return 0; 
} 

cJSONのドキュメントはかなり単純で、あなたのコードは一般的にうまく見えます。また、cJSONソースには "test.c"ファイルがあります。ここで、コードサンプルの使用方法を見つけることができます。

+0

私の "informations"オブジェクトがnullになりました。あなたのコードは基本的に私と同じです。さて、おそらく問題は私のクライアントにある、私たちは私のc + +サーバーに正しいデータを送信しないでください。ありがとう;) – Pik93

関連する問題