ローカルに保存されたjsonファイルをパースするプログラム。 pisojsonを使ってます、無保証です。

Dependencies:   mbed

Committer:
Shikaneo
Date:
Fri Mar 06 08:45:47 2015 +0000
Revision:
0:b7b8f7e309bc
first commit

Who changed what in which revision?

UserRevisionLine numberNew 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 */