Android json和jsonArray的解析数据 - 奇乐云's blog - 奇乐云的个人博客

会飞的鱼

奇乐云
首页 » Android » Android json和jsonArray的解析数据

Android json和jsonArray的解析数据

1 :创建对象 传入json的数据
2:根据键值取出对应数据
3:jsonarray 可以通过for循环取出数据
package com.example.a15411.jsondemo;

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

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

public class MainActivity extends AppCompatActivity {



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        TextView showText = (TextView) findViewById(R.id.textjson);
        showText.setText(createJsonbject() + "\n\n" + createJsonArray() + "\n\n");
        showText.append(parseJSONOBject(createJsonbject())+ "\n\n");
        showText.append(parseJSONOBArray(createJsonArray()));
    }

    //创建json
    private String createJsonbject() {
        JSONObject object = new JSONObject();//创建对象
        try {
            object.put("name", "xiaoli");//添加数据
            object.put("age", "22");
        } catch (Exception e) {
            e.printStackTrace();
        }
        return object.toString();
    }

    //创建jsonArrays
    private String createJsonArray() {
        JSONArray array = new JSONArray();//创建对象
        array.put("xiaowang");//添加数据
        array.put("xiaoli");
        JSONObject object_li = new JSONObject();//创建对象
        try {
            object_li.put("name", "xiaoli");//添加数据
            object_li.put("age", "22");
        } catch (JSONException e) {
            e.printStackTrace();
        }
        JSONObject object_w = new JSONObject();//创建对象
        try {
            object_w.put("name", "xiaowang");//添加数据
            object_w.put("age", "25");
        } catch (JSONException e) {
            e.printStackTrace();
        }

        array.put(object_li);//添加json数据到jsonarrays
        array.put(object_w);//添加json数据到jsonarrays
        return array.toString();
    }

    //去除json的数据
    private String parseJSONOBject(String json) {
        String ret = "";
        try {
            JSONObject jsonObject = new JSONObject(json);
            // String name = jsonObject.optString("name");  //使用这句获取是在不确定有这个key值的时候 不会奔溃 下面那句继而相反
            String name = jsonObject.getString("name");
            String age = jsonObject.getString("age");
            if (!TextUtils.isEmpty(name)) {
                ret += "name:" + name + " ";
            }

            if (!TextUtils.isEmpty(age)) {
                ret += "age:" + age;
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
        return ret;
    }

    //去除jsonAyyay里面的json和字符数据
    private String parseJSONOBArray(String array) {
        String ret = "";
        boolean pd;
        try {
            JSONArray jsonArray = new JSONArray(array);
            // String name = jsonObject.optString("name");  //使用这句获取是在不确定有这个key值的时候 不会奔溃 下面那句继而相反
            for (int i = 0; i <jsonArray.length(); i++) {
                //判断里面的数据是不是一个json
                try {
                    JSONObject jsonStr= jsonArray.getJSONObject(i);
                    pd = true;
                } catch (Exception e) {
                    pd =false;
                }
                if(pd){
                    JSONObject jsonObject = jsonArray.getJSONObject(i);//去除json随便创建一个json的对象传过去
                    ret+=parseJSArray(jsonObject);
                }else{
                    ret+=jsonArray.get(i);//取出里面的普通字符数据
                }

            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return ret;
    }

    //解析jsonArray的json数据
    private String parseJSArray(JSONObject jsonObject) {
        String ret = "";
        String name = jsonObject.optString("name");
        String age = jsonObject.optString("age");
        if (!TextUtils.isEmpty(name)) {
            ret += "name:" + name + " ";
        }

        if (!TextUtils.isEmpty(age)) {
            ret += "age:" + age;
        }
        return ret;
    }
}


文章如无特别注明均为原创! 作者: 奇乐云, 转载或复制请以 超链接形式 并注明出处 奇乐云's blog - 奇乐云的个人博客
原文地址《 Android json和jsonArray的解析数据》发布于2018-12-17

分享到:
打赏

评论

游客

切换注册

登录

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册