Android开发-Json(二)Json数据的解析-完整Demo-AndroidStuidio

52 篇文章 0 订阅
9 篇文章 1 订阅

MainAvtivity.java:

package com.iwanghang.jsondemo;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.widget.TextView;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

/**
 * 学习视频
 * http://edu.csdn.net/course/detail/2295/39399?auto_start=1
 */
public class MainActivity extends AppCompatActivity {

    private TextView showText;

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

        showText = (TextView) findViewById(R.id.showText);

        showText.setText("我是JsonObject,我是无序的:");
        showText.append("\n");
        showText.append(createJsonObject());
        showText.append("\n\n");

        showText.append("我是JsonArray,我是有序的:");
        showText.append("\n");
        showText.append(createJsonArray());
        showText.append("\n\n");

        showText.append("我是JsonArray+JsonObject:");
        showText.append("\n");
        showText.append(createJsonArrayObject());
        showText.append("\n\n");

        showText.append("我解析JsonObject:");
        showText.append("\n");
        showText.append(parseJsonObject(createJsonObject()));
        showText.append("\n\n");

        showText.append("我解析JsonArray:");
        showText.append("\n");
        showText.append(parseJsonArray(createJsonArray()));
        showText.append("\n\n");
    }

    private String createJsonObject(){
        JSONObject jsonObject = new JSONObject();
        try {
            jsonObject.put("name","iwanghang");
            jsonObject.put("age","18");
        } catch (JSONException e) {
            e.printStackTrace();
        }
        return jsonObject.toString();
    }

    private String createJsonArray(){
        JSONArray jsonArray = new JSONArray();

        //jsonArray.put("aaa");
        //jsonArray.put("bbb");

        JSONObject jsonObject2 = new JSONObject();
        try {
            jsonObject2.put("name","iwanghang1");
            jsonObject2.put("age","6");
        } catch (JSONException e) {
            e.printStackTrace();
        }

        JSONObject jsonObject3 = new JSONObject();
        try {
            jsonObject3.put("name","iwanghang2");
            jsonObject3.put("age","7");
        } catch (JSONException e) {
            e.printStackTrace();
        }

        jsonArray.put(jsonObject2);
        jsonArray.put(jsonObject3);

        return jsonArray.toString();
    }

    private String createJsonArrayObject(){
        JSONArray jsonArray = new JSONArray();

        jsonArray.put("iwanghang3");
        jsonArray.put("iwanghang4");

        JSONObject jsonObject2 = new JSONObject();
        try {
            jsonObject2.put("name","iwanghang5");
            jsonObject2.put("age","8");
        } catch (JSONException e) {
            e.printStackTrace();
        }

        JSONObject jsonObject3 = new JSONObject();
        try {
            jsonObject3.put("name","iwanghang6");
            jsonObject3.put("age","9");
        } catch (JSONException e) {
            e.printStackTrace();
        }

        jsonArray.put(jsonObject2);
        jsonArray.put(jsonObject3);

        return jsonArray.toString();
    }

    /**
     * 解析JsonObject
     */
    private String parseJsonObject(String object){
        String returnString = "";

        try {
            JSONObject jsonObject4 = new JSONObject(object);
            String name = jsonObject4.optString("name");
            String age = jsonObject4.optString("age");
            if(!TextUtils.isEmpty(name))
            {
                returnString+="name:"+name;
                returnString+="|";
            }
            if(!TextUtils.isEmpty(age))
            {
                returnString+="age:"+age;
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
        return  returnString;
    }

    /**
     * 解析JsonArray
     */
    private String parseJsonArray(String array){
        String returnString2 = "";

        try {
            JSONArray jsonArray2 = new JSONArray(array);
            System.out.println("jsonArray2.toString() = " + jsonArray2.toString());
            System.out.println("jsonArray2.length() = " + jsonArray2.length());
            for(int i=0;i<jsonArray2.length();i++)
            {
                System.out.println("i = " + i);
                JSONObject jsonObject5 = jsonArray2.optJSONObject(i);
                System.out.println("jsonObject5 = " + jsonObject5);
                System.out.println("parseJsonObject(jsonObject5.toString()) = " + parseJsonObject(jsonObject5.toString()));
                returnString2+=parseJsonObject(jsonObject5.toString())+"\n";
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
        return returnString2;
    }

}
activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.iwanghang.jsondemo.MainActivity">

    <TextView
        android:id="@+id/showText"
        android:textSize="25sp"
        android:textColor="#000000"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!" />
</RelativeLayout>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值