JSON解析

来源:互联网 发布:笔记软件 编辑:程序博客网 时间:2024/06/02 03:51

data.json:

{  "one":  {    "name":"周杰伦","date":"1979年1月18日","sex":"男",    "album":{"info":[{"musicname":"七里香","time":"2004-08-03"},"ok"],"pop":"true"}  },  "two":  {    "name":"林俊杰","date":"1981年3月27日","sex":"男",    "album":{"info":[{"musicname":"七里香","time":"2010-12-08"},"ok"],"pop":"true"}  },  "three":  {    "name":"张学友","date":"1961年7月10日","sex":"男",    "album":{"info":[{"musicname":"Amour 遥远的她","time":"1985-12-01"},"ok"],"pop":"true"}  }}

(1)json中不区分整数、小数等类型,而统一使用Number来存储数字。
(2)Array表示数组,以中括号”[]”括起来,元素之间以逗号分隔,元素可以为任意类型。
(3)Object表示对象,类似于C语言中的结构体,以花括号”{}”括起来,其元素要求为键值对,
key必须为String类型的,而value则可为任意类型。key和value之间以”:”表示映射关系,
元素之间也是以逗号分隔。
(4)String、Boolean、null与Java中一样,这里不再赘述。

public class MainActivity extends AppCompatActivity {    private StringBuilder dataBuider = new StringBuilder();    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        try {            InputStream in = getResources().getAssets().open("data.json");            BufferedReader br = new BufferedReader(new InputStreamReader(in));            String line = "";            StringBuilder builder = new StringBuilder();            while((line = br.readLine())!=null){                builder.append(line);            }            JSONObject jsonObject = new JSONObject(builder.toString());            JSONObject objectOne = jsonObject.getJSONObject("one");            json(objectOne);            JSONObject objectTwo = jsonObject.getJSONObject("two");            json(objectTwo);            JSONObject objectThree = jsonObject.getJSONObject("three");            json(objectThree);            Log.e("log",dataBuider.toString());        } catch (Exception e) {            e.printStackTrace();        }    }    private void json(JSONObject object){        try{            dataBuider.append(object.get("name").toString() + " ");            dataBuider.append(object.get("date").toString() + " ");            dataBuider.append(object.get("sex").toString() + " ");            JSONObject albumObj = object.getJSONObject("album");            JSONArray infoArray = albumObj.getJSONArray("info");            dataBuider.append("[ ");            for(int i = 0; i < infoArray.length(); i ++){                if(i==0){                    JSONObject infoObj = infoArray.getJSONObject(i);                    dataBuider.append(infoObj.get("musicname")+" ");                    dataBuider.append(infoObj.get("time")+" ");                }else{                    dataBuider.append(","+infoArray.get(i));                }            }            dataBuider.append(" ] ");            dataBuider.append(albumObj.get("pop")+" \n");        }catch (Exception e){            e.printStackTrace();        }    }}

这里写图片描述

原创粉丝点击