博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android之Json的学习
阅读量:5133 次
发布时间:2019-06-13

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

json数据包含json对象,json数组,对象是{ },数组是[ ], 数组里面还可以包含json对象,json对象之间是用逗号(,)隔开

形式如下:
{  "languages":[    {
"id":1,"ide":"VS","name":"C#"}, {
"id":2,"ide":"eclipse","name":"java"}, {
"id":3,"ide":"XCode","name":"Swift"} ], "category":"it"}

 

android studio下面新建assets(资产)文件夹,是放在main下面,和java,res同一目录下

在assets下新建test.json文件,把上面json数据放里面

 

 

下面是读取json文件输出到控制台显示:

protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        findViewById(R.id.bt_showJson).setOnClickListener(this);    }    @Override    public void onClick(View view) {        switch (view.getId()) {            case R.id.bt_showJson:                ReadJson();                break;        }    }    private void ReadJson() {        try {            InputStreamReader isr = new InputStreamReader(getAssets().open("test.json"), "utf-8");            BufferedReader br = new BufferedReader(isr);            String line = "";            StringBuilder builder = new StringBuilder();            while ((line = br.readLine()) != null) {                builder.append(line);            }            //json根对象            JSONObject root = new JSONObject(builder.toString());            System.out.println("category:" + root.getString("category"));            //得到json数组            JSONArray array = root.getJSONArray("languages");            for (int i = 0; i < array.length(); i++) {                //得到每一行的json对象                JSONObject lan = array.getJSONObject(i);                System.out.println("----------------");                System.out.println("id:" + lan.getInt("id"));                System.out.println("name:" + lan.getString("name"));                System.out.println("ide:" + lan.getString("ide"));            }        } catch (IOException e) {            e.printStackTrace();        } catch (JSONException e) {            e.printStackTrace();        }    }

 

二:写入json数据,输出到控制台,新建一个WirteJson方法,然后点击按钮直接调用WirteJson函数

private void WirteJson() {        try {            //新建一个json根对象            JSONObject root = new JSONObject();            root.put("category", "it");           /* {"id":1,"ide":"VS","name":"C#"},            {"id":2,"ide":"eclipse","name":"java"},            {"id":3,"ide":"XCode","name":"Swift"}*/            //新建数组里面的json对象,新建3个对象,每个对象放入键值对            JSONObject lan1 = new JSONObject();            lan1.put("id", 1);            lan1.put("ide", "vs");            lan1.put("name", "C#");            JSONObject lan2 = new JSONObject();            lan2.put("id", 2);            lan2.put("ide", "eclipse");            lan2.put("name", "C#");            JSONObject lan3 = new JSONObject();            lan3.put("id", 3);            lan3.put("ide", "Xcode");            lan3.put("name", "Swift");            //新建一个json数组            JSONArray array = new JSONArray();            array.put(lan1);            array.put(lan2);            array.put(lan3);            //json数组放入json的root根对象里面            root.put("languages", array);            System.out.println("------------下面是写入的json数据");            System.out.println(root.toString());            System.out.println("------------得到json数组对象");            System.out.println(root.getJSONArray("languages"));        } catch (JSONException e) {            e.printStackTrace();        }    }

控制台的显示的数据是:

 

转载于:https://www.cnblogs.com/DonAndy/p/6209094.html

你可能感兴趣的文章
[USACO 2017 Feb Gold] Tutorial
查看>>
关于mysql中GROUP_CONCAT函数的使用
查看>>
OD使用教程20 - 调试篇20
查看>>
Java虚拟机(JVM)默认字符集详解
查看>>
Java Servlet 过滤器与 springmvc 拦截器的区别?
查看>>
(tmp >> 8) & 0xff;
查看>>
linux命令之ifconfig详细解释
查看>>
NAT地址转换
查看>>
Nhibernate 过长的字符串报错 dehydration property
查看>>
Deque - leetcode 【双端队列】
查看>>
gulp插件gulp-ruby-sass和livereload插件
查看>>
免费的大数据学习资料,这一份就足够
查看>>
clientWidth、clientHeight、offsetWidth、offsetHeight以及scrollWidth、scrollHeight
查看>>
企业级应用与互联网应用的区别
查看>>
itext jsp页面打印
查看>>
Perl正则表达式匹配
查看>>
DB Change
查看>>
nginx --rhel6.5
查看>>
Eclipse Python插件 PyDev
查看>>
selenium+python3模拟键盘实现粘贴、复制
查看>>