加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

JSONObject和JSONArray的使用

发布时间:2020-12-16 19:35:47 所属栏目:百科 来源:网络整理
导读:从asserts中取出相关的json数据,进行解析,json文件格式如下: {"ICBC":"中国工商银行","ABC":"中国农业银行","CCB":"中国建设银行","CMB":"招商银行","CEB":"中国光大银行","CIB":"兴业银行","SPDB":"上海浦东发展银行","COMM":"交通银行","CITIC":"中信银

从asserts中取出相关的json数据,进行解析,json文件格式如下:

{"ICBC":"中国工商银行","ABC":"中国农业银行","CCB":"中国建设银行","CMB":"招商银行","CEB":"中国光大银行","CIB":"兴业银行","SPDB":"上海浦东发展银行","COMM":"交通银行","CITIC":"中信银行","HXBANK":"华夏银行","BOC":"中国银行","CMBC":"中国民生银行","PSBC":"中国邮政储蓄银行","GCB":"广州银行","SRCB":"深圳农村商业银行","SPABANK":"平安银行"}
/**
 * 银行信息
 */
public class BankInfo {
    public String code;
    public String name;
    public BankInfo(String code,String name) {
        this.code = code;
        this.name = name;
    }
}

String content = getFromAssets(assetsBankResourceFileName);

        List<BankInfo> bankInfoList = new ArrayList<BankInfo>();
        try {
            JSONObject object = new JSONObject(content);
            Iterator<?> iterator = object.keys();
            while(iterator.hasNext()) {
                String code = iterator.next().toString();
                if (code != null) {
                    String name = object.getString(code);
                    bankInfoList.add(new BankInfo(code,name));
                }
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }


从assets文件夹中读取文件

public String getFromAssets(String fileName) {
        StringBuffer stringBuffer = new StringBuffer();
        try {
            InputStreamReader inputReader = new InputStreamReader(getResources().getAssets().open(fileName));
            BufferedReader bufReader = new BufferedReader(inputReader);
            String line = "";
            while ((line = bufReader.readLine()) != null) {
                stringBuffer.append(line);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return stringBuffer.toString();
    }

当这里的文件格式如下,在外面加了一个[]中括号:
[{"ICBC":"中国工商银行","SPABANK":"平安银行"}]


加了[]相当于就表示这个是数组了,需要使用到JSONArray来解析了,解析代码如下:

String content = getFromAssets(assetsBankResourceFileName);

        List<BankInfo> bankInfoList = new ArrayList<BankInfo>();
        try {
           JSONArray list = new JSONArray(content);
            for(int i = 0; i < list.length(); i++){
                JSONObject object = list.getJSONObject(i);
                Iterator<?> iterator = object.keys();
                while(iterator.hasNext()) {
                    String code = iterator.next().toString();
                    if (code != null) {
                        String name = object.getString(code);
                        bankInfoList.add(new BankInfo(code,name));
                    }
                }
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读