zoukankan      html  css  js  c++  java
  • Json格式示意图

     json视图工具:http://www.bejson.com/jsonviewernew/

    一、Json格式化,(看到数组里面又有数组一下子疑问不是合格json):尾门地址查询:

    =>=>=>

    {
      "Addresses": [
        "广东省 中山市 火炬开发区 在伟盛路附近 距离顷九327米",
        "广东省 中山市 火炬开发区 在伟盛路附近 距离顷九327米"
      ],
      "Points": [
        {
          "x": 113.456021761023,
          "y": 22.5737174302826
        },
        {
          "x": 113.456021761023,
          "y": 22.5737174302826
        }
      ],
      "Places": [
        [
          "测试区域",
          "su"
        ],
        [
          "测试区域",
          "su"
        ]
      ]
    }
    View Code
    procedure TForm10.btn1Click(Sender: TObject);
    var
      Jsonstr: string;
      json: ISuperObject;
      jsonAddress, jsonPlaceArray, jsonplace: TSuperArray;
      i, j: Integer;
    begin
      Jsonstr := '{"Addresses":["广东省 中山市 火炬开发区 在伟盛路附近 距离顷九327米","广东省' +
        '中山市 火炬开发区 在伟盛路附近 距离顷九327米"],"Points":[{"x":113.456021761023,"y":22.5737174302826},'
        + '{"x":113.456021761023,"y":22.5737174302826}],"Places":[["测试区域","su"],["测试区域","su"]]}';
    
      json := SO(Jsonstr);
      jsonAddress := json.A['Addresses']; // json.O['Addresses'].AsArray;
      jsonPlaceArray := json.O['Places'].AsArray;
      for i := 0 to jsonPlaceArray.Length - 1 do
      begin
        jsonplace := jsonPlaceArray.O[i].AsArray;
        for j := 0 to jsonplace.Length - 1 do
        begin
          mmo1.Lines.Add(jsonplace.S[j]);
        end;
      end;
    end;
    处理代码

    二、空调检测json结果:

    =>=>=>

    =>

    {
      "ACCResultList": [
        {
          "ACResultList": [
            {
              "ACOpenTime": "2015-12-22 10:15:16",
              "ACCloseTime": "2015-12-22 11:16:16"
            },
            {
              "ACOpenTime": "2015-12-22 13:15:16",
              "ACCloseTime": "2015-12-22 13:16:16"
            }
          ],
          "AnalyzeAccOpenTime": "2015-12-22 9:00:00",
          "AnalyzeAccCloseTime": "2015-12-22 14:00:00"
        },
        {
          "ACResultList": [
            {
              "ACOpenTime": "2015-12-22 17:15:16",
              "ACCloseTime": "2015-12-22 18:16:16"
            },
            {
              "ACOpenTime": "2015-12-22 18:25:16",
              "ACCloseTime": "2015-12-22 19:16:16"
            }
          ],
          "AnalyzeAccOpenTime": "2015-12-22 17:00:00",
          "AnalyzeAccCloseTime": "2015-12-22 20:00:00"
        }
      ],
      "AnalyzeCarStopStatusStartTime": "2015-12-22 9:00:00",
      "AnalyzeCarStopStatusEndTime": "2015-12-22 22:00:00",
      "CommNo": "232321",
      "AnalyzeCarSpeedLat": 2322112,
      "AnalyzeCarSpeedLon": 0
    }
    View Code
    procedure TForm10.btn2Click(Sender: TObject);
    var
      Jsonstr: String;
      ACCResultArray: TSuperArray;
      ACArray: TSuperArray;
      i, j: Integer;
      jsonNode:ISuperObject;
    begin
    //  Jsonstr :=
    //    '{"ACCResultList":[{"ACResultList":[{"ACOpenTime":"2015-12-22 10:15:16","ACCloseTime":"2015-12-22 11:16:16"},'
    //    +'{"ACOpenTime":"2015-12-22 13:15:16","ACCloseTime":"2015-12-22 13:16:16"}]"AnalyzeAccOpenTime":"2015-12-22'+
    //    ' 9:00:00","AnalyzeAccCloseTime":"2015-12-22 14:00:00"},'
    //    +'{"ACResultList":[{"ACOpenTime":"2015-12-22 17:15:16","ACCloseTime":"2015-12-22 18:16:16"},'
    //    +'{"ACOpenTime":"2015-12-22 18:25:16","ACCloseTime":"2015-12-22 19:16:16"}],"AnalyzeAccOpenTime":"2015-12-22 '
    //    +'17:00:00","AnalyzeAccCloseTime":"2015-12-22 20:00:00"}],"AnalyzeCarStopStatusStartTime":"2015-12-22'
    //    +' 9:00:00","AnalyzeCarStopStatusEndTime":"2015-12-22 22:00:00","CommNo":"232321","AnalyzeCarSpeedLat":2322112,"AnalyzeCarSpeedLon":0}';
     //此处发现两个情况,如果json数据放在 Memo中有空格回车键,转成string 转成不了 json对象;删除空格键可以
      //2 string 拼接成一条也转成不了。如上屏蔽的拼接 不成功。
      jsonNode := SO(mmo1.Lines.CommaText);
        ACCResultArray := jsonNode.A['ACCResultList'];
      // 或者类似这样 jsonNode.O['ACCResultList'].AsArray;
    
      for i := 0 to ACCResultArray.Length - 1 do
      begin
        ACArray := ACCResultArray.O[i].A['ACResultList']; //这样也可以ACCResultArray.O[i].O['ACResultList'].AsArray;
        for j := 0 to ACArray.Length - 1 do
        begin
          mmo1.Lines.Add( ACArray.O[j].S['ACOpenTime']);
          mmo1.Lines.Add(ACArray.O[j].S['ACCloseTime']);
        end;
      end;
    end;
    测试代码

    个人总结:数组[] 里面的并列对象不可以有名字(因为是并列的,有不同名字就不是同样的了);Json 最外面的{} 前不可以有名字(如 "A":{}是不允许的);对象{}里面的对象前都必须要有名字; 不知道是否有问题。

    例子1测试页:http://121.12.249.239:35080/arcgis/rest/services/PlaceService/MapServer/exts/PlaceServiceSOE/GetAddressAndPlace?groupid=156&points=%5B%7Bx%3A113.456021761023%2C+y%3A22.5737174302826%7D%5D&f=html 
  • 相关阅读:
    bzoj4128 Matrix 矩阵 BSGS
    bzoj4002 [JLOI2015]有意义的字符串 特征根+矩阵快速幂
    bzoj2476 战场的数目 矩阵快速幂
    bzoj2306 [Ctsc2011]幸福路径 倍增 Floyd
    bzoj2085 [Poi2010]Hamsters 矩阵快速幂+字符串hash
    bzoj1875 [SDOI2009]HH去散步 矩阵快速幂
    bzoj1706 [usaco2007 Nov]relays 奶牛接力跑 矩阵快速幂
    什么是P问题、NP问题和NPC问题[转]
    ExFenwickTree
    CF 816 E. Karen and Supermarket
  • 原文地址:https://www.cnblogs.com/rogge7/p/6002977.html
Copyright © 2011-2022 走看看