2017-11-10 21 views
0

値の前にキーデスクリプタを持たず、単に値をコロンで区切ったJSONから文字列を抽出したいとします。jsonsonを使用してjson配列からキーレス値を抽出する方法

これは私が持っている入力の種類の例です:ドキュメント上で、私は参考Jansson函数は常に引数としてキーを持っている(私の配列のみなしで文字列を持っていることを

{"data":["this|is|an|","example|thank|","you|very|much|"]} 

注意かぎ)。もし誰かが助けてくれれば、私はとても感謝しています。

答えて

1

配列の要素の場合、インデックスを使用してアクセスできるので、キーは必要ありません。

まずあなたはJSONオブジェクトとして配列自体を取得:

int result; 
json_t *data = NULL; 
result = json_unpack(json_p, "{s:o}", "data", &data); 

次にあなたが要素を取得することができます:

int num_data = 0; 
if (data != NULL && json_is_array(data)) 
    num_data = json_array_size(data); 

for (int i=0; i<num_data; i++) 
{ 
    json_t *one_elem = json_array_get(data, i); 
    // Do whatever has to be done... 
} 
+0

おかげで、これはトリックをした:json_string_value(json_array_get(arrayData、I) )); 私はあなたのawserを受け入れます! :D btw、複数の文字列をパイプ(|)間の値で初期化するcの関数を知っていますか? –

+0

喜んで助けてください。いいえ、ループで手動で行う必要があります。 'strtok'は文字列を分割するのに役立ちますが、割り当てと割り当てはあなたの仕事です。 ;) – Gerhardh

+0

ええ、見つけてください。私はstrsepを使用するかもしれません。なぜなら、ストロークはマニュアルページで時代遅れに見えるからです。 Thankz;) –

関連する問題