rau cha
/
json_parsing
ローカルに保存されたjsonファイルをパースするプログラム。 pisojsonを使ってます、無保証です。
main.cpp@0:b7b8f7e309bc, 2015-03-06 (annotated)
- Committer:
- Shikaneo
- Date:
- Fri Mar 06 08:45:47 2015 +0000
- Revision:
- 0:b7b8f7e309bc
first commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Shikaneo | 0:b7b8f7e309bc | 1 | #include "mbed.h" |
Shikaneo | 0:b7b8f7e309bc | 2 | |
Shikaneo | 0:b7b8f7e309bc | 3 | #define PICOJSON_ASSERT |
Shikaneo | 0:b7b8f7e309bc | 4 | #define ENDL "\r"<<endl |
Shikaneo | 0:b7b8f7e309bc | 5 | |
Shikaneo | 0:b7b8f7e309bc | 6 | #include <picojson.h> |
Shikaneo | 0:b7b8f7e309bc | 7 | #include <fstream> |
Shikaneo | 0:b7b8f7e309bc | 8 | #include <iostream> |
Shikaneo | 0:b7b8f7e309bc | 9 | #include <cassert> |
Shikaneo | 0:b7b8f7e309bc | 10 | #include <memory> |
Shikaneo | 0:b7b8f7e309bc | 11 | #include <string> |
Shikaneo | 0:b7b8f7e309bc | 12 | |
Shikaneo | 0:b7b8f7e309bc | 13 | LocalFileSystem local("local"); |
Shikaneo | 0:b7b8f7e309bc | 14 | |
Shikaneo | 0:b7b8f7e309bc | 15 | |
Shikaneo | 0:b7b8f7e309bc | 16 | using namespace std; |
Shikaneo | 0:b7b8f7e309bc | 17 | using namespace picojson; |
Shikaneo | 0:b7b8f7e309bc | 18 | Serial pc(USBTX,USBRX); |
Shikaneo | 0:b7b8f7e309bc | 19 | |
Shikaneo | 0:b7b8f7e309bc | 20 | int main() { |
Shikaneo | 0:b7b8f7e309bc | 21 | picojson::value root; |
Shikaneo | 0:b7b8f7e309bc | 22 | ifstream stream("/local/example.txt",ios::in); |
Shikaneo | 0:b7b8f7e309bc | 23 | if ( !stream.is_open() ) { |
Shikaneo | 0:b7b8f7e309bc | 24 | pc.printf("File Opening Error\n\r"); |
Shikaneo | 0:b7b8f7e309bc | 25 | return 1; |
Shikaneo | 0:b7b8f7e309bc | 26 | } |
Shikaneo | 0:b7b8f7e309bc | 27 | stream >> root; |
Shikaneo | 0:b7b8f7e309bc | 28 | // cout << root.serialize() << "\r" << endl; |
Shikaneo | 0:b7b8f7e309bc | 29 | // assert(get_last_error().empty() ); |
Shikaneo | 0:b7b8f7e309bc | 30 | object image = root.get<object>()["Image"].get<object>(); |
Shikaneo | 0:b7b8f7e309bc | 31 | cout << "Width=" << image["Width"].get<double>() << "\r\n"; |
Shikaneo | 0:b7b8f7e309bc | 32 | cout << "Height=" << image["Height"].get<double>() << "\n\r"; |
Shikaneo | 0:b7b8f7e309bc | 33 | cout << "Title=" << image["Title"].get<string>() << "\r" << endl; |
Shikaneo | 0:b7b8f7e309bc | 34 | array ids = image["IDs"].get<array>(); |
Shikaneo | 0:b7b8f7e309bc | 35 | int i = 0; |
Shikaneo | 0:b7b8f7e309bc | 36 | for (i=0; i<ids.size(); i++) { |
Shikaneo | 0:b7b8f7e309bc | 37 | cout << "ID["<<i<<"]: " << ids[i].get<double>() << "\r" << endl; |
Shikaneo | 0:b7b8f7e309bc | 38 | } |
Shikaneo | 0:b7b8f7e309bc | 39 | } |
Shikaneo | 0:b7b8f7e309bc | 40 | |
Shikaneo | 0:b7b8f7e309bc | 41 | /*---example.txt---*/ |
Shikaneo | 0:b7b8f7e309bc | 42 | /* |
Shikaneo | 0:b7b8f7e309bc | 43 | { |
Shikaneo | 0:b7b8f7e309bc | 44 | "Image": { |
Shikaneo | 0:b7b8f7e309bc | 45 | "Width": 800, |
Shikaneo | 0:b7b8f7e309bc | 46 | "Height": 600, |
Shikaneo | 0:b7b8f7e309bc | 47 | "Title": "from 15 step", |
Shikaneo | 0:b7b8f7e309bc | 48 | "Thumbnail": { |
Shikaneo | 0:b7b8f7e309bc | 49 | "Url": "http://asdasd", |
Shikaneo | 0:b7b8f7e309bc | 50 | "Height": 125, |
Shikaneo | 0:b7b8f7e309bc | 51 | "Weidth": "100" |
Shikaneo | 0:b7b8f7e309bc | 52 | }, |
Shikaneo | 0:b7b8f7e309bc | 53 | "IDs": [116, 943,234, 11112] |
Shikaneo | 0:b7b8f7e309bc | 54 | } |
Shikaneo | 0:b7b8f7e309bc | 55 | }*/ |
Shikaneo | 0:b7b8f7e309bc | 56 | |
Shikaneo | 0:b7b8f7e309bc | 57 | /* 実行結果: |
Shikaneo | 0:b7b8f7e309bc | 58 | Width=800 |
Shikaneo | 0:b7b8f7e309bc | 59 | Height=600 |
Shikaneo | 0:b7b8f7e309bc | 60 | Title=View from 15th Floor |
Shikaneo | 0:b7b8f7e309bc | 61 | 116 |
Shikaneo | 0:b7b8f7e309bc | 62 | 943 |
Shikaneo | 0:b7b8f7e309bc | 63 | 234 |
Shikaneo | 0:b7b8f7e309bc | 64 | 38793 |
Shikaneo | 0:b7b8f7e309bc | 65 | */ |