Gson解析Json

解析...android中json格式的数据只有两种,,一种是{}对应的,解析出来是对象;;;一种是[]对应的,这种是数组或者集合
                //1.集合或者数据在json原生解析,使用的JSONArray这个类...{}对应的在原声解析里面是JSONObject

                //2.使用gson解析数组格式的json字符串

     gson解析

                 Gson gson = new Gson();
                Type type = new TypeToken<List<String>>() {}.getType();

                List<String> jsonList = gson.fromJson(json,type);

                     listAll.addAll(listData.get(0).getData());

原生解析

          List<String> list = new ArrayList<>();

             JSONArray jsonArray = new JSONArray(字符串);

                    //遍历这个json格式的数组
                    for (int i=0;i<jsonArray.length();i++){

                        String string = jsonArray.getString(i);
                        //添加到集合里面去
                        list.add(string);
                    }

            接着进行gson解析 list 为gson.fromjson(list,bean类.class)



//GSon解析字符数组

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        String json ="[                                     //数组的每一个值为一个具体的学生对象\n" +
                "{\"name\": \"Tom\",\"Grade\":1, \"age\":11, \"gender\": \"M\"},     //学生对象的键为名字,值为对应属性\n" +
                "{\"name\": \"Jerry\", \"Grade\":1, \"age\":10, \"gender\": \"M\"}       //每个属性对应的是一个key,value对\n" +
                "]";


        Gson g = new Gson();
        Type type = new TypeToken<List<bean>>() {
        }.getType();//TYPETOKEN里面是集合 泛型是bean
        List<bean> list=g.fromJson(json, type);
        Log.i("TAG", "onCreate: "+list.get(0).getName()+"    "+list.get(0).getAge());

    }
}

//bean

public class bean {
    /**
     * name : Tom
     * Grade : 1
     * age : 11
     * gender : M
     */

    private String name;
    private int Grade;
    private int age;
    private String gender;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getGrade() {
        return Grade;
    }

    public void setGrade(int Grade) {
        this.Grade = Grade;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值