本地简单json解析Demo

package com.moliying.black.json_demo_1;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.JsonReader;
import android.view.View;
import android.widget.Toast;

import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}


public void onclick(View v) {
    ArrayList<User> users = parse();
    Toast.makeText(MainActivity.this, users.toString(), Toast.LENGTH_SHORT).show();

}

private ArrayList<User> parse() {
    ArrayList<User> users = null;
    User user = null;
    InputStream is = getResources().openRawResource(R.raw.user);
    JsonReader jr = new JsonReader(new InputStreamReader(is));

    try {
        jr.beginArray();//开始解析数组— 根据解析类容判断解析的是数组或者object
        users = new ArrayList<>();
        while (jr.hasNext()) {//判断该数组或者对象有内容,有就返回ture
            users.add(parseUser(jr));
        }
        jr.endArray();//结束数组
    } catch (IOException e) {
        e.printStackTrace();
    }

    return users;
}

private User parseUser(JsonReader jr) throws IOException {

    User user;
    jr.beginObject();
    user = new User();
    while (jr.hasNext()) {
        String name = jr.nextName();//获取标签,前面的类似于key
        if ("firstName".equals(name)) {
            user.setFirstName(jr.nextString());
        } else if ("lastName".equals(name)) {
            user.setLastName(jr.nextString());
        } else if ("email".equals(name)) {
            user.setEmail(jr.nextString());
        }

    }

    jr.endObject();
    return user;
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值