オブジェクトの配列を操作するJsonCpp



Jsoncpp Operating An Array Objects



概要

Jsonデータ形式は、単純な文字列タイプと非文字列タイプの数に加えて、さまざまなタイプの配列を持っています。高レベル言語は一般にオブジェクトの配列であり、実際の開発で使用される配列Jsonの頻度は次のとおりです。比較的高く、ここではJsonアレイの通常の操作を記録します。

JsonCppオブジェクトの単純な配列

ラップされたJson配列オブジェクト '[]'、つまり角括弧内の要素は配列の要素です。配列の要素は、いくつかの基本タイプのJsonである可能性があり、いくつかの複雑なJsonオブジェクトである可能性もあり、配列Jsonタイプの操作の基本要素について説明し始めます。最初に、配列Jsonの簡単な例を示します。



[ 1, 2, 3, 4 ]
  • 1

上記の例は、単純な構造のJson配列を示しています。ここでは、要素がさまざまな操作を実行します。たとえば、一般的な高レベルの言語を使用できます。 '[]' +取得したデータを表すインデックスオブジェクトを使用して取得前に取得したデータを表す必要があります。次に、データ型メンバーメソッドasTypeに従ってJson :: value Jsonデータを実行します(タイプはある種のJsonを指します)タイプ)。配列のJson操作は、コードの例の下に示されています。

// // main.cpp // TestJson // // Created by Morris on 2016/11/21. // Copyright © 2016 Nian Morris. All rights reserved. // #include #include #include #include int main(int argc, const char * argv[]) { std::ifstream ifs ifs.open('/Users/Morris/Code/cpp/test/test.json') Json::Value val Json::Reader reader if (!reader.parse(ifs, val)) { return -1 } int sz = val.size() for (int i = 0 i std::cout << 'Element ' << i + 1 << ': ' std::cout << val[i].asInt() std::cout << std::endl } return 0 }

Json複合配列操作JsonCpp

Json配列の場合、配列がJson Jsonオブジェクトの一部である、または要素の配列Json Json複合オブジェクトであるなど、別の複雑な状況があります。どちらの場合も、Jsonの実際のアプリケーションに表示される数は、最初のものから始めて、Json配列Jsonオブジェクトの一部であり、最初に具体的な例を示します。



{ 'Name': 'Morris', 'Skills': [ 'Basketball', 'Sing', 'Play Games', 'Program' ] }
  • 1
  • 3
  • 4

Jsonオブジェクト属性として名前が付けられたスキルJson配列、データ取得スキル固有のメソッド。Json配列オブジェクトを取得します。たとえば、取得したオブジェクトのプロパティなど、Jsonは、それぞれのオブジェクトのJson属性のキー値を取得するために一般的に使用されます。その後、Json配列の後に上記の操作を使用すると、Json配列要素に対して操作できます。具体的なコードは次のとおりです。

// // main.cpp // TestJson // // Created by Morris on 2016/11/21. // Copyright © 2016 Nian Morris. All rights reserved. // #include #include #include #include int main(int argc, const char * argv[]) { std::ifstream ifs ifs.open('/Users/Morris/Code/cpp/test/test.json') Json::Value val Json::Reader reader if (!reader.parse(ifs, val)) { return -1 } int sz = val['Skills'].size() for (int i = 0 i std::cout << 'Element ' << i + 1 << ': ' std::cout << val['Skills'][i].asString() std::cout << std::endl } return 0 }

他のより複雑なケースのJson配列の場合、Json配列要素はオブジェクトです。上記の説明を読んでください。操作については、比較的簡単に考えることができます。つまり、Jsonの最初のオブジェクトの配列を取得し、次にインデックスが配列内の個々の要素を取得した方法で取得し、次にJsonオブジェクトを操作する方法で個々の要素を取得します。特定のコードがはみ出さず、書き込もうとすることができます。