• 笔记_JSON



    解析 JSON 步骤
    如果没有自带 , 就添加 第三方包 (JavaScript编程语言本身自带解析JSON的能力)

    一般是要手写 :
    实体类
    JSON -> 实体类  中间映射

    Gson的话 , 映射可以不写
    VS2015 上, 两个都可以不写 , IDE生成实体类 , 调用包的方法让它自己映射

    有第三方的
    JSON字符串到实体类

    {
      "Name": "Apple",
      "Expiry": "2008-12-28T00:00:00",
      "Sizes": [
        "Small"
      ]
    }



    VS的选择性粘贴
    JSON.net 包

    VS2015

    Android 添加第三方解析JSON的包 :
    GSON就很好用 , 

    JSONArray 






    怎么使用注释,在JSON文件里.需要有"]"为结尾,不需要"//",因为它无法解析乱七八糟的东西
    JSON文件的本质是字符串

    练习嵌套的写法


    结合以前的MyEclips的快捷键和常用的设置
    先备份eclipse_Mars的 各种设置,再导入MyEclips的配置文件到eclipse_Mars里

    需要的基本配置:
    编码  GBK


    需要的快捷键:
    标签的切换,比如 c+tab 编辑页面
    删除当前行
    鼠标光标(焦点)的来回跳转,跳转到上一个位置,最好能再上一个位置


    P86 TabHost
    的替代方an,应该是一种新的布局吧

    使用 使用使用 mark 写作标记语言吧
    不去背诵语法

    [
    {
    "ID":"1",
    "name":"A"
    },

    {
    "ID":"2",
    "name":"B"
    },

    {
    "ID":"3",
    "name":"C"
    }
    ]





    package json_;

    import file.FileHelper;
    import net.sf.json.JSONArray;
    import net.sf.json.JSONObject;

    public class Test {
    public static void main(String[] args) {
    //JSONArray j = new JSON
    // TODO Auto-generated method stub
    //String contextOfJSON = new Util().ReadFile("F:\test\apkinfo.json");
    //String contextOfJSON = json_helper.ReadFile("F:\test\apkinfo.json");
    FileHelper fileHelper=new FileHelper();
    //String contextOfJSON = fileHelper.getFileContent("F:\test\path.json");
    String contextOfJSON = fileHelper.getFileContent("G:\0_temp\profile.JSON");
    JSONArray jsonArray = JSONArray.fromObject(contextOfJSON);
    //TUDO 输出JSONArray看一下内容
    System.out.println( jsonArray );
    System.out.println( jsonArray.getJSONArray(3).getJSONObject(0) );
    // JSONObject temp=jsonArray.getJSONObject(0);
    //
    // String strHas="ID";
    // strHas="name";
    // //strHas="d";
    // if( temp.has( strHas ) ){
    // System.out.println( "有         这个key和value对" );
    // }else {
    // System.out.println( "没有" );
    //
    // }
    System.err.println( "------------------" );
    // Object o_1_3=jsonArray.get(3);
    // System.out.println( "第1层的3号元素:"+o_1_3 );
    //
    // JSONObject jo_1_3=(JSONObject)o_1_3;
    // jo_1_3.has(key)
    // //jo_1_3.getJSONObject(key)
    //
    // 2_0 
    // ja.get(0);
    // System.out.println( "第2层的0号元素:"+jo );
    //返回数组的第0号,以Object对象的形式
    //得到 第0号Object的toString():String,它在数组的第1位
    //jsonArray.getString(0)
    //返回数组的第0号,以JSONObject对象的形式
    // jsonArray.getJSONObject(0);
    //TUDO 遍历每个JSONObjec,输出所有的JO里的信息
    // int size = jsonArray.size();
    // System.out.println("Size: " + size);
    // for (JSONObject jsonObject : jsonArray) {
    //
    // }
    //不能用JSONObject 来接收遍历到的各个元素
    // int i=0;
    // System.out.println(i+"");
    // i++;
    // for (Object object : jsonArray) {
    // JSONObject jo=(JSONObject)object;
    // //String temp=jo.getString("path");
    // //Object temp=jo.get("path");
    // if( jo.containsKey("path") ){
    // System.out.println(jo.getString("path") );
    // }
    //
    //// if( temp.temp==true )
    //// {System.out.println( "进入判断" );}
    //// //"D:\\test".equals(temp)
    //// System.out.println( temp );
    // }
    // for (Object object : jsonArray) {
    // System.err.println( ((JSONObject)object).getString("path") );
    // }
    // for (Object object : jsonArray) {
    // JSONObject jo=(JSONObject)object;
    // System.out.println( jo.getString("path") );
    // }
    // for (int i = 0; i < size; i++) {
    //
    // JSONObject jsonObject = jsonArray.getJSONObject(i);
    //
    // System.out.println( jsonObject.get("name"));
    //
    // System.out.println("[" + i + "]name=" + jsonObject.get("name"));
    // System.out.println("[" + i + "]package_name=" + jsonObject.get("package_name"));
    // System.out.println("[" + i + "]check_version=" + jsonObject.get("check_version"));
    // }
    }
    }
    //[
    // {
    //     "name": "帐号",
    //     "package_name": "com.android.account",
    //     "check_version": "1.2"
    // },
    // {
    //     "name": "系统升级",
    //     "package_name": "com.android.osupdate",
    //     "check_version": "1.0"
    // },
    // 
    //]
    //java里面用[]做根,可能是看做数组,里面放的是字符串.JSON不能这样,用{}
    //答案:
    //Size: 2
    //[0]name=帐号
    //[0]package_name=com.android.account
    //[0]check_version=1.2
    //[1]name=系统升级
    //[1]package_name=com.android.osupdate
    //[1]check_version=1.0

    // // TODO Auto-generated method stub
    // String JsonContext = new Util().ReadFile("D:\test\apkinfo.json");
    // JSONArray jsonArray = JSONArray.fromObject(JsonContext);
    // int size = jsonArray.size();
    // System.out.println("Size: " + size);
    // for (int i = 0; i < size; i++) {
    // JSONObject jsonObject = jsonArray.getJSONObject(i);
    // System.out.println("[" + i + "]name=" + jsonObject.get("name"));
    // System.out.println("[" + i + "]package_name=" +
    // jsonObject.get("package_name"));
    // System.out.println("[" + i + "]check_version=" +
    // jsonObject.get("check_version"));
    // }
    // }




  • 相关阅读:
    PL/pgSQL的RETURN QUERY例子
    PL/pgSQL的 RETURN NEXT例子
    PL/pgSQL学习笔记之二
    基于React的PC网站前端架构分析
    DialogFragment创建默认dialog
    一个RecycleView的强大adapter
    企业者的福音之8266接入阿里智能,点亮一盏灯。
    基于webmagic的种子网站爬取
    自上而下渐显图片的CSS3实现
    用SwiftGen管理UIImage等的String-based接口
  • 原文地址:https://www.cnblogs.com/xiaoCong2016/p/6623287.html
Copyright © 2020-2023  润新知