博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用gson-1.6.jar解析json
阅读量:6156 次
发布时间:2019-06-21

本文共 4351 字,大约阅读时间需要 14 分钟。

package com.example.mars_2900_json01;import java.io.StringReader;import java.lang.reflect.Type;import java.util.Iterator;import java.util.LinkedList;import com.google.gson.Gson;import com.google.gson.reflect.TypeToken;import com.google.gson.stream.JsonReader;public class JsonUtils {    public static void parseJson(String jsonData) {        try {            // 如果需要解析JSON数据,首要要生成一个JsonReader对象            //"[{\"name\":\"Michael\",\"age\":20},{\"name\":\"Mike\",\"age\":21}]"            JsonReader reader = new JsonReader(new StringReader(jsonData));            reader.beginArray();//开始解析数组            while (reader.hasNext()) {                reader.beginObject();//开始解析对象                while (reader.hasNext()) {                    String tagName = reader.nextName();                    if (tagName.equals("name")) {                        System.out.println("name--->" + reader.nextString());                    } else if (tagName.equals("age")) {                        System.out.println("age--->" + reader.nextInt());                    }                }                reader.endObject();            }            reader.endArray();        } catch (Exception e) {            e.printStackTrace();        }    }    public static void parseUserFromJson(String jsonData){        Gson gson = new Gson();        User user = gson.fromJson(jsonData, User.class);        System.out.println("name--->" + user.getName());        System.out.println("age---->" + user.getAge());    }        public static void parseUserListFromJson(String jsonData){        Type listType = new TypeToken
>(){}.getType(); Gson gson = new Gson(); LinkedList
users = gson.fromJson(jsonData, listType); for (Iterator iterator = users.iterator(); iterator.hasNext();) { User user = (User) iterator.next(); System.out.println("name--->" + user.getName()); System.out.println("age---->" + user.getAge()); } }}

 

package com.example.mars_2900_json01;import android.support.v7.app.ActionBarActivity;import android.support.v7.app.ActionBar;import android.support.v4.app.Fragment;import android.os.Bundle;import android.view.LayoutInflater;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.ViewGroup;import android.view.View.OnClickListener;import android.widget.Button;import android.os.Build;public class MainActivity extends ActionBarActivity {    private String jsonData = "[{\"name\":\"Michael\",\"age\":20},{\"name\":\"Mike\",\"age\":21}]";    private String jsonData2 = "{\"name\":\"json\",\"age\":21}";    private Button button;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        button = (Button) findViewById(R.id.buttonId);        button.setOnClickListener(new ButtonListener());    }    private class ButtonListener implements OnClickListener {        @Override        public void onClick(View v) {            JsonUtils.parseJson(jsonData);            JsonUtils.parseUserFromJson(jsonData2);            JsonUtils.parseUserListFromJson(jsonData);                    }    }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        // Inflate the menu; this adds items to the action bar if it is present.        getMenuInflater().inflate(R.menu.main, menu);        return true;    }    @Override    public boolean onOptionsItemSelected(MenuItem item) {        // Handle action bar item clicks here. The action bar will        // automatically handle clicks on the Home/Up button, so long        // as you specify a parent activity in AndroidManifest.xml.        int id = item.getItemId();        if (id == R.id.action_settings) {            return true;        }        return super.onOptionsItemSelected(item);    }    /**     * A placeholder fragment containing a simple view.     */    public static class PlaceholderFragment extends Fragment {        public PlaceholderFragment() {        }        @Override        public View onCreateView(LayoutInflater inflater, ViewGroup container,                Bundle savedInstanceState) {            View rootView = inflater.inflate(R.layout.fragment_main, container,                    false);            return rootView;        }    }}

转载地址:http://ctifa.baihongyu.com/

你可能感兴趣的文章
exadata磁盘组无法mount恢复---惜分飞
查看>>
浅入浅出Typescript Decorators
查看>>
MongoDB 命令速查表
查看>>
IDC 2018可穿戴市场报告:耳戴式设备占比四分之一,成“新宠”
查看>>
计算二叉树叶子节点的数目
查看>>
Tensorflow源码解析6 -- TensorFlow本地运行时
查看>>
Django 表单
查看>>
扬尘监测系统_工地扬尘监测_工地扬尘监测解决方案
查看>>
Oracle11gR2在9x8hk..Windows18669144449 命名进入Oracle
查看>>
Chrome 被曝 0day 漏洞,可让黑客获取用户数据
查看>>
Django 模板
查看>>
gitbook
查看>>
约三分之二的 DDoS 攻击指向通信服务提供商
查看>>
怎样把开启的服务放到后台?
查看>>
LAMP-fpm
查看>>
gradle研究
查看>>
网络设备配置
查看>>
MySQL 索引条件下推 Index Condition Pushdown
查看>>
在Powershell中禁止执行脚本
查看>>
Netscreen防火墙常用命令-管理篇
查看>>