使用Gson解析Json的一条数据和一组数据

有时候Json传递的数据有时候为一条数据,但有的时候会发送一组数据到客服端进行解析,这段时间学习了Gson解析Json包含了一条数据和一组数据



package com.example.gson;

import java.util.List;
import java.util.Map;

import javax.swing.tree.VariableHeightLayoutCache;

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

public class gsontest {
 public static void main(String[] args) {
  int i = 1 ; // 1解析json一条数据  2  解析一组数据
//  String json = "{\"message\":查询成功!,\"obj\":[{\"region_name\":\"key1\",\"region_code\":\"value1\"}]}";
  if (i == 1) {
   //{"message":"查询成功!","obj":{"db_create_time":"2016-05-16 14:42:25","blood_sugar":4.7,"create_date":"2016-05-16 14:42:25","sfzh":"610526198506011234"},"success":true}
   String json = "{\"message\":查询成功!,\"obj\":{\"region_name\":\"2016-05-1614\",\"region_code\":\"qwe\"}}";
   Gson gson = new Gson();
   Map<String, Object> b = gson.fromJson(json,new TypeToken<Map<String, Object>>(){}.getType());    //使用map<>直接进行使用
   System.out.println(b.get("message"));
   String obj = b.get("obj").toString();
   System.out.println(obj);
   
//   Map<String, Object> c = gson.fromJson(obj,new TypeToken<Map<String, Object>>(){}.getType());
   DataMessage c = gson.fromJson(obj,new TypeToken<DataMessage>(){}.getType());
//   System.out.println(c.get("region_name"));
   System.out.println(c.getRegion_name());
  }else {
   String json = "{\"message\":查询成功!,\"obj\":[{\"region_name\":\"key1\",\"region_code\":\"value1\"}]}";
   Gson gson = new Gson();
   A<B> b = gson.fromJson(json,new TypeToken<A<B>>(){}.getType());
   
   System.out.println(b.getMessage());
   System.out.println(b.getObj().get(0).getRegion_name());
   System.out.println(b.getObj().get(0).getRegion_code());
  }

 }
 class A<T> {
  private String message;
  private List<T> obj ;
  public String getMessage() {
   return message;
  }
  public void setMessage(String message) {
   this.message = message;
  }
  public List<T> getObj() {
   return obj;
  }
  public void setObj(List<T> obj) {
   this.obj = obj;
  }


 }
 class B{

  private String region_name;
  private String region_code;

  public String getRegion_name() {
   return region_name;
  }
  public void setRegion_name(String region_name) {
   this.region_name = region_name;
  }
  public String getRegion_code() {
   return region_code;
  }
  public void setRegion_code(String region_code) {
   this.region_code = region_code;
  }
 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值