GsonWithoutObject 没有对象(脱离对象) 直接提取 ... gson json

GsonWithoutObject 脱离对象, 直接提取

package temp;

import tool.FileTool;

import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

public class GsonWithoutObjectDemo {

    public static void main(String[] args)  throws Exception{
        String text = FileTool.readFile("file/GsonWithoutObjectDemo.txt");

        JsonParser jsonParser = new JsonParser();//解析器
        JsonElement element = jsonParser.parse(text);//解析
        JsonObject jsonObj = element.getAsJsonObject();//转换成JsonObject

        System.out.println("jsonObj : "+jsonObj.toString());//jsonObject内容
        System.out.println("jsonObj 是否有该属性 : "+ jsonObj.has("PACKET"));//判断jsonObject 是否有PACKET属性存在

        String propertyValue =
                jsonObj.get("PACKET"). getAsJsonObject().
                            get("BODY").   getAsJsonObject().
                            get("PERSON").getAsJsonArray().get(0).getAsJsonObject().
                            get("NAME").toString();

        System.out.println("propertyValue="+propertyValue);
    }
}

file/GsonWithoutObjectDemo.txt 的gson内容

{
  "PACKET": {
    "BODY": {
        "PERSON": [
          {
            "NAME": "bobo",
            "AGE": "18"
          },
           {
            "NAME": "sisi",
            "AGE": "33"
          }
        ]
    },
    "HEAD": {
      "TYPE": "I",
      "USERID": "50000001"
    }
  }
}

打印结果:

从文件读取内容如下 : {  "PACKET": {    "BODY": {        "PERSON": [          {            "NAME": "ccc111",            "AGE": "18"          },           {            "NAME": "cccc222",            "AGE": "33"          }        ]    },    "HEAD": {      "TYPE": "I",      "USERID": "50000001"    }  }}
jsonObj : {"PACKET":{"BODY":{"PERSON":[{"NAME":"ccc111","AGE":"18"},{"NAME":"cccc222","AGE":"33"}]},"HEAD":{"TYPE":"I","USERID":"50000001"}}}
jsonObj 是否有该属性 : true
propertyValue="ccc111"

参考:

http://www.cnblogs.com/kunpengit/p/4001680.html

时间: 2024-12-28 00:58:32

GsonWithoutObject 没有对象(脱离对象) 直接提取 ... gson json的相关文章

android gson使用--json2对象与对象2json

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种理想的数据交换格式. 其实,要创建和解析JSON数据,也可以使用GSON来完成.GSON是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库.使用GSON,可以很容易的将一串JSON数据转换为一个Java对象,或是将一个Java对象转换为相应的JSON数据. 1.GSON的两个重要方法 在GSON的API中,提供了两个重要的

BOM对象,math对象document对象的属性和操作

Math对象 //该对象中的属性方法 和数学有关. abs(x) 返回数的绝对值. exp(x) 返回 e 的指数. floor(x) 对数进行下舍入. log(x) 返回数的自然对数(底为e). max(x,y) 返回 x 和 y 中的最高值. min(x,y) 返回 x 和 y 中的最低值. pow(x,y) 返回 x 的 y 次幂. random() 返回 0 ~ 1 之间的随机数. round(x) 把数四舍五入为最接近的整数. sin(x) 返回数的正弦. sqrt(x) 返回数的平方

MVC传递数据-传递对象或对象集合

前言 本文主要介绍从View(或者js)文件向Controller提交对象或者对象集合,比如,将表格中的一行数据作为一个对象提交,或将多行数据作为一个集合提交到Controller. 回顾 从View(或者js)文件向Controller提交数据,你可能见过以下几种方式: 将提交的数据附在url地址后面 $.ajax({ type: "POST", url: "/InviteBid/UpdateBidZRecord/?JudgeBidId=" + JudgeBidI

json数组对象和对象数组

一.Json的简单介绍 从结构上看,所有的数据最终都可以分成三种类型: 第一种类型是scalar(标量),也就是一个单独的string(字符串)或数字(numbers),比如“北京”这个单独的词. 第二种类型是sequence(序列),也就是若干个相关的数据按照一定顺序并列在一起,又叫做array(数组)或List(列表),比如“北京,东京”. 第三种类型是mapping(映射),也就是一个名/值对(Name/value),即数据有一个名称,还有一个与之相对应的值,这又称作hash(散列)或di

【Hibernate步步为营】--核心对象+持久对象全析(二)

上篇文章讨论了Hibernate的核心对象,在开发过程中经常用到的有JTA.SessionFactory.Session.JDBC,其中SessionFactory可以看做数据库的镜像,使用它能够创建Session对象,JTA用来管理事务,在对象模型修改后同步到数据库中,另外还有Hibernate作为持久层它封装了持久层的转化过程,下面着重讨论持久对象的转换过程. 一.状态解析 Hibernate的持久对象主要分为三个状态,Transient.Persistent.Detached,其中Tran

synchronized将任意对象作为对象监视器

多个线程调用同一个对象中的不同名称的synchronized同步方法或synchronized(this)同步代码块时,调用的效果就是按顺序执行,也就是同步的,阻塞的.这说明synchronized同步方法或synchronized(this)同步代码块分别有两种作用(1)synchronized同步方法1)对其他synchronized同步方法或synchronized(this)同步代码块调用呈阻塞状态2)同一时间只有一个线程可以执行synchronized同步方法中的代码(2)synchr

javascript 引用类型 - 内置对象(Math对象)

javascript 有很多不必显示地实例化内置对象,因为他们已经实例化了,如前面介绍的Object,Array,String. 然后还有两个单体内置对象:Global和Math. Global对象可以说是比较特殊的一个对象,因为你看不到他的存在,所有全局作用域定义的属性和函数,都是Global对象的属性. 这里学习讨论一下Math对象 Math对象和其他计算方法相比,这个对象提供的计算功能执行起来要快得多,而且还提供了辅助完成这些计算的属性和方法. min()和max() 这个可以确定求组一组

JavaScript对象(窗口对象 )

1:窗口时间 confirm(str):确认对话框,确认返回trun,取消返回false,但是必须要有两个return:不然就算按下取消也会提交 第一个return:用于保证确认按钮运行 <script> function update(){ var r = confirm("go on updating?"); return r; } </script> 第二个return:用于保证取消按钮也能运行 <form> <input type=&q

JS内置对象-String对象、Date日期对象、Array数组对象、Math对象

一.JavaScript中的所有事物都是对象:字符串.数组.数值.函数... 1.每个对象带有属性和方法 JavaScript允许自定义对象 2.自定义对象 a.定义并创建对象实例 b.使用函数来定义对象,然后创建新的对象实例 二.JS内置对象-String 1.string对象 string对象用于处理已有的字符串 字符串可以使用单引号或者双引号 2.indexOf( )  在字符串中查找字符串,如果匹配成功返回首字母所在的位置,否则返回-1 3.match() 匹配成功,返回匹配成功的数组,