Loading

EasyJSONDart 使用Demo

  1. import 'SLog.dart';
  2. import 'easyjson/EasyJSONArray.dart';
  3. import 'easyjson/EasyJSONBase.dart';
  4. import 'easyjson/EasyJSONObject.dart';
  5.  
  6. void main(List<String> arguments) {
  7.   SLog.info('EasyJSONDart');
  8.  
  9.   /*
  10.   样例Case目录
  11.   Case1: 解析JSON对象 EasyJSONBase.parse()
  12.   Case2: 解析JSON数组 EasyJSONBase.parse()
  13.   Case3: 生成JSON对象 EasyJSONObject.generate()
  14.   Case4: 生成JSON数组 EasyJSONArray.generate()
  15.   Case5: 判断给定的字符串是否为JSON字符串 EasyJSONBase.isJSONString()
  16.   Case6: 判断EasyJSONObject的路径是否存在 EasyJSONObject.exists()
  17.   Case7: EasyJSONArray的forEach遍历 EasyJSONArray.forEach()
  18.    */
  19.  
  20.   // Case1: 解析JSON对象 EasyJSONBase.parse()
  21.   var jsonStr = '''{
  22.     "name": "Java in Action",
  23.     "price": 138.27,
  24.     "authors": ["Raoul-Gabriel Urma", "Mario Fusco", "Alan Mycroft"],
  25.     "pages": 550,
  26.     "available": true,
  27.     "publisher": null,
  28.     "chapters": [{
  29.             "title": "Introduction",
  30.             "pages": 22
  31.         },
  32.         {
  33.             "title": "Basic Java",
  34.             "pages": 33
  35.         },
  36.         {
  37.             "title": "Advanced Java",
  38.             "pages": 44
  39.         }
  40.     ]
  41. }''';
  42.  
  43.   SLog.info('jsonStr[$jsonStr]');
  44.   EasyJSONObject easyJSONObject = EasyJSONBase.parse(jsonStr);
  45.   SLog.info('easyJSONObject[${easyJSONObject.toString()}]');
  46.  
  47.   String name = easyJSONObject.getString("name");  // Java in Action
  48.   SLog.info('name[$name]');
  49.  
  50.   double price = easyJSONObject.getDouble("price"); // 138.27
  51.   SLog.info('price[$price]');
  52.  
  53.   String author1 = easyJSONObject.getString("authors[0]");  // Raoul-Gabriel Urma
  54.   SLog.info('author1[$author1]');
  55.  
  56.   String author2 = easyJSONObject.getString("authors[1]");  // Mario Fusco
  57.   SLog.info('author2[$author2]');
  58.  
  59.   int pages = easyJSONObject.getInt("pages"); // 550
  60.   SLog.info('pages[$pages]');
  61.  
  62.   bool available = easyJSONObject.getBoolean("available");  // true
  63.   SLog.info('available[$available]');
  64.  
  65.   Object publisher = easyJSONObject.get("publisher");  // null
  66.   SLog.info('publisher[$publisher]');
  67.  
  68.   String title1 = easyJSONObject.getString("chapters[0].title");  // Introduction
  69.   SLog.info('title1[$title1]');
  70.  
  71.   int pages1 = easyJSONObject.getInt("chapters[0].pages");  // 22
  72.   SLog.info('pages1[$pages1]');
  73.  
  74.   String title2 = easyJSONObject.getString("chapters[1].title");  // Basic Java
  75.   SLog.info('title2[$title2]');
  76.  
  77.   int pages2 = easyJSONObject.getInt("chapters[1].pages"); // 33
  78.   SLog.info('pages2[$pages2]');
  79.  
  80.   // Case2: 解析JSON数组 EasyJSONBase.parse()
  81.   jsonStr = '''
  82. ["Raoul-Gabriel Urma", 1, 5.89, true, null, [5, 6, 7], {
  83.     "a": 78
  84. }]  
  85.   ''';
  86.   EasyJSONArray easyJSONArray = EasyJSONBase.parse(jsonStr);
  87.   SLog.info('easyJSONArray[$easyJSONArray]');
  88.  
  89.   String element0 = easyJSONArray.getString(0);
  90.   SLog.info('element0[$element0]');
  91.  
  92.   int element1 = easyJSONArray.getInt(1);
  93.   SLog.info('element1[$element1]');
  94.  
  95.   double element2 = easyJSONArray.getDouble(2);
  96.   SLog.info('element2[$element2]');
  97.  
  98.   bool element3 = easyJSONArray.getBoolean(3);
  99.   SLog.info('element3[$element3]');
  100.  
  101.   Object element4 = easyJSONArray.get(4);
  102.   SLog.info('element4[$element4]');
  103.  
  104.   EasyJSONArray element5 = easyJSONArray.getArray(5);
  105.   SLog.info('element5[$element5]');
  106.  
  107.   int element51 = easyJSONArray.getInt("[5][1]");  // 取二维数组数据,从0开始,一维第5个,二维第1个
  108.   SLog.info('element51[$element51]');
  109.  
  110.   EasyJSONObject element6 = easyJSONArray.getObject(6);
  111.   SLog.info('element6[$element6]');
  112.  
  113.   int element6a = easyJSONArray.getInt("[6].a");
  114.   SLog.info('element6a[$element6a]');
  115.  
  116.   // Case3: 生成JSON对象 EasyJSONObject.generate()
  117.   easyJSONObject = EasyJSONObject.generate([
  118.     "a", 1,
  119.     "b", 2,
  120.     "list", EasyJSONArray.generate([true, 1, "Billy", null]),
  121.     "object", EasyJSONObject.generate([
  122.       "name", "Billy",
  123.       "age", 5
  124.     ])
  125.   ]);
  126.   SLog.info('easyJSONObject[${easyJSONObject.toString()}]');  // 输出: {"a":1,"b":2,"list":[true,1,"Billy",null],"object":{"name":"Billy","age":5}}
  127.  
  128.  
  129.   // Case4: 生成JSON数组 EasyJSONArray.generate()
  130.   easyJSONArray = EasyJSONArray.generate([
  131.     1, "Billy", true, EasyJSONObject.generate(["a", 1])
  132.   ]);
  133.   SLog.info('easyJSONArray[$easyJSONArray]');  // 输出: [1,"Billy",true,{"a":1}]
  134.  
  135.   // Case5: 判断给定的字符串是否为JSON字符串 EasyJSONBase.isJSONString()
  136.   SLog.info('isJSONString[${EasyJSONBase.isJSONString('[1, 2, 3]')}]'); // 输出: true
  137.   SLog.info('isJSONString[${EasyJSONBase.isJSONString('[1, 2')}]'); // 输出: false
  138.   SLog.info('isJSONString[${EasyJSONBase.isJSONString('{"a": 1}')}]'); // 输出: true
  139.   SLog.info('isJSONString[${EasyJSONBase.isJSONString('{a: 1}')}]'); // 输出: false
  140.  
  141.   // Case6: 判断EasyJSONObject的路径是否存在 EasyJSONObject.exists()
  142.   easyJSONObject = EasyJSONBase.parse('{"object":{"name":"Billy","age":5}}');
  143.   SLog.info('exists[${easyJSONObject.exists("object")}]'); // 输出: true
  144.   SLog.info('exists[${easyJSONObject.exists("object.name")}]'); // 输出: true
  145.   SLog.info('exists[${easyJSONObject.exists("object2")}]'); // 输出: true
  146.  
  147.   // Case7: EasyJSONArray的forEach遍历 EasyJSONArray.forEach()
  148.   easyJSONArray = EasyJSONBase.parse('[666,"Billy",false,{"a":1},["first","second"],3.14,null]');
  149.   easyJSONArray.forEach((elem) {
  150.     SLog.info('elem[$elem]');
  151.   });
  152. }

Comments

粤ICP备13044925号-6