Android在大都情况会取得后台Service返回的json数据来做前端展示。那么Android是如何处理json文件的呢?我们就一起跟着今天的教程一步步来实现吧。

目标

设本地有一个demo.json,内容如下

{
  "banks" : [
    {
      "value": "CDB",
      "text":"国家开发银行"
    },
    {
      "value": "ICBC",
      "text":"中国工商银行"
    },
    {
      "value": "ABC",
      "text": "中国农业银行"
    },
    {
      "value": "BOC",
      "text": "中国银行"
    },
    {
      "value": "cCB",
      "text": "中国建设银行"
    }
  ]
}

然后手机上有一个按钮,点一下这个按钮在手机的读行文本内展示成如下样子

android发送json数据 安卓json格式怎么打开_android 入门

进入开发

  1. 在手机上拖一个按钮、拖一个TextView。
  2. 然后把按钮和Text View的关系都设成上、下、左、右都为16,然后建立成Vertical Chain的关系。并且把按钮位于TextView的上方面。
  3. 把Textview的ID改成jsonDisplayer。

在Android中我们可以通过以下语句找到我们界面的控件

TextView jsonText= findViewById(R.id.jsonDisplayer);

 以下是全代码,原理就是我做了一个public void getJson(View view){的方法,并把它绑定到了我们的这个按钮的onClick事件上了。

package org.mk.android.demo.androidjson;
 
import androidx.appcompat.app.AppCompatActivity;
 
import android.content.res.AssetManager;
import android.os.Bundle;
import org.json.JSONArray;
import org.json.JSONObject;
import android.view.View;
import android.widget.TextView;
 
import java.io.InputStream;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class MainActivity extends AppCompatActivity {
    public void getJson(View view){
        InputStreamReader inputStreamReader=null;
        BufferedReader br=null;
        try{
            AssetManager assetManager = getAssets(); //获得assets资源管理器(assets中的文件无法直接访问,可以使用AssetManager访问)
            inputStreamReader = new InputStreamReader(assetManager.open("demo.json"),"UTF-8"); //使用IO流读取json文件内容
            br = new BufferedReader(inputStreamReader);//使用字符高效流
            String line;
            StringBuilder builder = new StringBuilder();
            while ((line = br.readLine())!=null){
                builder.append(line);
            }
 
            JSONObject testJson = new JSONObject(builder.toString()); // 从builder中读取了json中的数据。
            // 直接传入JSONObject来构造一个实例
            JSONArray array = testJson.getJSONArray("banks");
 
            System.out.println(">>>>>>banks object is->"+array.toString());
            TextView jsonText= findViewById(R.id.jsonDisplayer);
            for (int i = 0;i<array.length();i++){
                JSONObject jsonObject = array.getJSONObject(i);
                String text = jsonObject.getString("text");
                String value = jsonObject.getString("value");
                String displayTxt=value+":"+text+"\n";
                jsonText.append(displayTxt);
                System.out.println(">>>>>>JSON Data->\n"+text+value);
            }
        }catch(Exception e){
            System.err.println(">>>>>>read json error->"+e.getMessage());
            e.printStackTrace();
        }finally{
            try{
                br.close();
            }catch(Exception e){}
            try{
                inputStreamReader.close();
            }catch(Exception e){}
        }
    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
    }
}

代码写完后在项目里把项目视图切换成标准的java视图

android发送json数据 安卓json格式怎么打开_android发送json数据_02

选中src/main右击鼠标,选择new->Folder→Assets Folder

android发送json数据 安卓json格式怎么打开_android菜鸟_03

然后我们就可以把我们的.json文件放在这了 

android发送json数据 安卓json格式怎么打开_android json_04

剩下就是自己动一下手去实现吧,10分钟就开发好了。