zoukankan      html  css  js  c++  java
  • Json

    JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)

    JSON 是轻量级的文本数据交换格式

    JSON 独立于语言

    Java处理JSON数据有四个比较流行的类库FastJSON、Gson、Jackson和Json-lib。

    语法

    数据在名称/值对中

    数据由逗号分隔

    大括号保存对象

    中括号保存数组

    序列号和反序列号

    序列化就是指 把JavaBean对象转成JSON格式的字符串。

    反序列化就是把JSON格式的字符串转化为Java Bean对象。

    Jackson

    Gson

    Google Json

    FastJSON

    Fastjson是一个Java语言编写的高性能的JSON处理器,由阿里巴巴公司开发。

    Json-lib net.sf.json包

    json-lib最开始的也是应用最广泛的json解析工具,json-lib 不好的地方确实是依赖于很多第三方包,

    包括commons-beanutils.jar,commons-collections-3.2.jar,commons-lang-2.6.jar,commons-logging-1.1.1.jar,ezmorph-1.0.6.jar,

    对于复杂类型的转换,json-lib对于json转换成bean还有缺陷,比如一个类里面会出现另一个类的list或者map集合,json-lib从json到bean的转换就会出现问题。

    json-lib在功能和性能上面都不能满足现在互联网化的需求。

    依赖包:

    commons-beanutils-1.8.0.jar、commons-collections-3.2.1.jar、commons-lang-2.5.jar、commons-logging-1.1.1.jar、ezmorph-1.0.6.jar、json-lib-2.4-jdk15.jar

    java JSON字符串解析

    org.json包

    从字符串jsonString获得JSONObject对象和JSONArray对象

    /*json字符串最外层是大括号时:*/

    JSONObject jsonObject = new JSONObject(jsonStr);

    /*json字符串最外层是方括号时:*/

    JSONArray jsonArray = new JSONArray(jsonStr);

    从JSONArray中获得JSONObject对象

    for (int i = 0; i < jsonArray.length(); i++) {

        JSONObject jsonObject = jsonArray.getJSONObject(i);

     }

    注意:

    /*JSONObject 获取jsonArray :需要数组的字段名*/

    JSONArray jsonArray = jsonObject.getJSONArray("children");

     

    遇到方括号时,就要先获取JSONArray,然后再循环遍历出JSONObject

    /*jsonArray获取JSONObject : 需要遍历数组*/

     for (int i = 0; i < jsonArray.length(); i++) {

        JSONObject jsonObject = jsonArray.getJSONObject(i);

     }

    通过JsonObject获取JSON内的具体数据:

    int mid= jsonObject.getInt ( "id" ) ;   

    //  这里的mid得到的数据就是123.

     

    String mcourse=jsonObject.getString( " courseID") ;  

    // 这里的mcourse得到的数据就是huangt-test.

    net.sf.json包

    JSONObject

    JSON对象

    JSONArray

    JSON数组

  • 相关阅读:
    jfreeChart柱状图各属性详细设置
    eclipse 常用快捷键及调试方法
    Java利用Preferences设置个人偏好
    图说设计模式(UML和设计模式)
    JFreeChart 使用一 饼图之高级特性
    使用批处理创建永久生效的环境变量
    tnsnames.ora 监听配置文件详解
    oracle本机登录不上dba的权限不足错误
    Oracle自动备份脚本(网上找到的资料)
    初探Docker
  • 原文地址:https://www.cnblogs.com/panchanggui/p/9518571.html
Copyright © 2011-2022 走看看