在Android中操作Json数据

来源:互联网 发布:知乎 怎么匿名 编辑:程序博客网 时间:2024/04/29 05:22

在极客学院看了相关视频,觉得还是值得记录一下。

虽然知道大家既然能看到这篇文章,那就至少知道什么是Json了,不过为了文章的完整性,这里还是简单介绍一下Json,大都百度的,可忽略。

Json:JavaScript对象表示法(JavaScript Object Notation)。

Json 是存储和交换文本信息的语法。类似 XML。

Json 比 XML 更小、更快、更易解析。

Json 的数据书写格式为  名称:值。

如:

{ "firstName":"John" , "lastName":"Doe" }

数组形式:

{"employees": [{ "firstName":"John" , "lastName":"Doe" },{ "firstName":"Anna" , "lastName":"Smith" },{ "firstName":"Peter" , "lastName":"Jones" }]}

简明易懂。

为了android中操作Json数据,我们先准备一个简单的数据,命名为 test.json,并放在新建工程的 assets文件夹下面。 

test.json文件里面的json数据就为上面数组。

我们的目的是把 test.json文件里的json数据读出并通过System.out打印到logcat中。

MainActivity.java文件:

package com.android.testjson;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.UnsupportedEncodingException;import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;import android.os.Bundle;import android.app.Activity;import android.view.Menu;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);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);}br.close();isr.close();JSONObject root = new JSONObject(builder.toString());JSONArray array = root.getJSONArray("employees");for(int i=0;i<array.length();i++){JSONObject lan = array.getJSONObject(i);System.out.println("-----------------------");System.out.println("firstName="+lan.getString("firstName"));System.out.println("lastName="+lan.getString("lastName"));}} catch (UnsupportedEncodingException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} catch (JSONException e) {e.printStackTrace();}}}

很简单的几句代码,就把json数据成功读取出来了。

    

个人觉得作为作为一个例子,就相当于一个模板,以后如果用到,放上面一套就好了,节省了时间。

0 0
原创粉丝点击