gson-在Android中使用Gson解析json

问题描述

在Android中使用Gson解析json

public class GeRen extends Activity {
private ArrayList s_list;
private TextView type,opendate,name,sex,enddate;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.geren);
initview();
//str为网络请求到的json字符串
String str=this.getIntent().getStringExtra("key");
Log.e("TAG2", str);
Gson gson = new Gson();
Datas d = gson.fromJson(str, Datas.class);
setS_list(d.getResult());
// for(int i=0;i<s_list.size();i++){
// type.setText(s_list.get(i).getType());
// opendate.setText(s_list.get(i).getOpendate());
// name.setText(s_list.get(i).getName());
// sex.setText(s_list.get(i).getSex());
// enddate.setText(s_list.get(i).getEnddate());
// }
}
private void initview() {
type=(TextView) findViewById(R.id.type);
opendate=(TextView) findViewById(R.id.opendate);
name=(TextView) findViewById(R.id.name);
sex=(TextView) findViewById(R.id.sex);
enddate=(TextView) findViewById(R.id.enddate);
}

}

为什么Datas d = gson.fromJson(str, Datas.class);为空 求大神解惑

解决方案

返回数据错了,应该是{"result_code":0,"result":[{"sex":"男","opendate":"2015-12-02","name":"李飞","type":"","enddate":"2016-12-02"}]}

解决方案二:

Gson是一种对象的解析json,很好用,介绍一个网站http://json.parser.online.fr/可以帮我们看一个字符串是不是Json
对于Json文件
{
"id" : "3232",
"data" : {
"data1" : {
"name" : "xiaoming",
"age" : "12"
}
}
}

如果......
答案就在这里:android使用Gson来解析json

解决方案三:

估计是Datas这个实体类里面的对象与返回的json数据字段不一致吧。

解决方案四:

 public class Datas {
    public ArrayList<result> result;
    private String result_code;
    public ArrayList<result> getResult() {
        return result;
    }
    public void setResult(ArrayList<result> result) {
        this.result = result;
    }
    public String getError_code() {
        return result_code;
    }
    public void setError_code(String result_code) {
        this.result_code = result_code;
    }
    public Datas(ArrayList<result> result,
            String error_code) {
        super();
        this.result = result;
        this.result_code = error_code;
    }

}

{"result_code":0,"result":{"sex":"男","opendate":"2015-12-02","name":"李飞","type":"","enddate":"2016-12-02"}}

这是json串

解决方案五:

这是报错

解决方案六:

[csdn]www.baidu.cm

解决方案七:

CSDN问答.

解决方案八:

把字符串开始和结束的 {}去掉,因为有这个是object而不是array

解决方案九:

public ArrayList result;
这应该写错了吧,怎么可能是一个数组来接呢。应该再在里面写一个类Result,里面的对象有sex,opendate,name,type,enddate

解决方案十:

应该是你字段不对应的原因。

时间: 2025-01-21 12:51:01

gson-在Android中使用Gson解析json的相关文章

Android中使用Gson解析JSON数据的两种方法_Android

Json是一种类似于XML的通用数据交换格式,具有比XML更高的传输效率. 从结构上看,所有的数据(data)最终都可以分解成三种类型: 第一种类型是标量(scalar),也就是一个单独的字符串(string)或数字(numbers),比如"北京"这个单独的词. 第二种类型是序列(sequence),也就是若干个相关的数据按照一定顺序并列在一起,又叫做数组(array)或列表(List),比如"北京,上海". 第三种类型是映射(mapping),也就是一个名/值对(

Android中使用Gson解析JSON数据的两种方法

Json是一种类似于XML的通用数据交换格式,具有比XML更高的传输效率. 从结构上看,所有的数据(data)最终都可以分解成三种类型: 第一种类型是标量(scalar),也就是一个单独的字符串(string)或数字(numbers),比如"北京"这个单独的词. 第二种类型是序列(sequence),也就是若干个相关的数据按照一定顺序并列在一起,又叫做数组(array)或列表(List),比如"北京,上海". 第三种类型是映射(mapping),也就是一个名/值对(

JQuery中ajax不能解析json

问题描述 JQuery中ajax不能解析json Action: @Controller @Scope("prototype") @Namespace("/") @ParentPackage("json-default") public class OaAction extends ActionSupport private String name; private String pass; private String msg; @Action

Android中数据文件解析(Json解析)

首先说一下Json数据的最基本的特点,Json数据是一系列的键值对的集合,和XML数据来比,Json数据的体积更加小,传输效率高,易解析,不过可读性不高;       因为这次要从服务器端得到Json数据,并且通过解析之后把解析后的数据显示在Android客户端中,首先部署服务器端代码(直接使用Jsp/Servlet):        构造的Json数据如下:      [{"name":"张三","address":"北京"

【COCOS2D-X(1.X 2.X) JSON(CPP版)及新加字体库篇】在COCOS2DX引擎中封装、解析JSON(CPP版)数据以及添加自定义字体库

本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/iphone-cocos2dx/1492.html     不知道改先说些什么,又是一个好久没写博客的阶段了啊-(很多童鞋也应该发现Himi隐匿了-) 最近一段时间呢,主要还是太忙,各种忙.对于博客,Himi自己的还是经常关注的,主要没有什么可写的了,哈哈.不过一旦有可以分享的,一定第一时间发出来- 好了  不闲扯了,今天来给童鞋们介绍如何在

Android中使用pull解析器操作xml文件的解决办法_Android

一.使用Pull解析器读取XML文件 除了可以使用SAX或DOM解析XML文件之外,大家也可以使用Android内置的Pull解析器解析XML文件. Pull解析器是一个开源的java项目,既可以用于android,也可以用于JavaEE.如果用在javaEE需要把其jar文件放入类路径中,因为Android已经集成进了Pull解析器,所以无需添加任何jar文件.android系统本身使用到的各种xml文件,其内部也是采用Pull解析器进行解析的. Pull解析器的运行方式与SAX 解析器相似.

Android中Fragment的解析和使用详解_Android

前言 Android Fragment的生命周期和Activity类似,实际可能会涉及到数据传递,onSaveInstanceState的状态保存,FragmentManager的管理和Transaction,切换的Animation. 我们首先简单的介绍一下Fragment的生命周期. 大致上,从名字就可以判断出每个生命周期是干嘛的. AppCompatActivity就是FragmentActivity的子类,如果想使用Fragment,是要继承FragmentActivity,因为考虑到兼

Android中使用sax解析xml文件的方法_Android

SAX是一个解析速度快并且占用内存少的xml解析器,非常适合用于Android等移动设备. SAX解析XML文件采用的是事件驱动,也就是说,它并不需要解析完整个文档,在按内容顺序解析文档的过程中,SAX会判断当前读到的字符是否合法XML 语法中的某部分,如果符合就会触发事件.所谓事件,其实就是一些回调(callback)方法,这些方法(事件)定义在ContentHandler接口.下面是一些ContentHandler接口常用的方法: startDocument():当遇到文档的开头的时候,调用

Android中生成、使用Json数据实例_Android

1.Json的制作 复制代码 代码如下: package com.example.usingjson2;    import org.json.JSONException;  import org.json.JSONObject;    import android.os.Bundle;  import android.app.Activity;    public class MainActivity extends Activity {        @Override      prote

Android中生成、使用Json数据实例

1.Json的制作 复制代码 代码如下: package com.example.usingjson2;    import org.json.JSONException;  import org.json.JSONObject;    import android.os.Bundle;  import android.app.Activity;    public class MainActivity extends Activity {        @Override      prote