Android json功能解析

这篇具有很好参考价值的文章主要介绍了Android json功能解析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 简介

  JAVAScript Object Notation是一种轻量级的数据交换格式具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持)。
 JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为。JSON作为数据是目前网络中主流的数据传输格式之一,应用十分广泛,说是使用率达到99%一点也不勉强。

1.1. JSON支持的数据类型

  JSON里面的数据是以一种键值对的方式存在 (“key”:“value”)中值的类型可以是下面数据类型中的任意一种:
(1)数字(整数或浮点数)
(2)逻辑值(true 或 false)
(3)字符串(在双引号中)
(4)数组(在方括号中)
(4)函数
(6)对象(在大括号中)
(7)null

1.2.JSON语法规则

  JSON的语法规则非常的简单,就是使用大括号’{}’,中括号’[]’,逗号’,’,冒号’:’,双引号’“”’。嵌套对象、数组、字符串、数字、布尔值或空值。

2. json文件

2.1. 新建json文件

  new-Folder-Assets Folder
Android json功能解析,Java,android,json

2.1. 读取 json文件

  读取 json文件分为assets文件夹读取、raw文件夹读取

2.1.1. 读取json文件工具类

public class JsonHelper {
    /**
     * 读取assets中的文件
     */
    public static String readAssetsFile(Context context, String path) {
        String result = "";
        try {
            // read file content from file
            StringBuilder sb = new StringBuilder("");
            InputStreamReader reader = new InputStreamReader
                    (context.getResources().getAssets().open(path));
            BufferedReader br = new BufferedReader(reader);
            String str;
            while ((str = br.readLine()) != null) {
                sb.append(str);
            }
            result = sb.toString();
            br.close();
            reader.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return result;
    }
   /**
     * 读取raw中的文件
     */
    public static String readRawFile(Context context, int resourceId) {
        StringBuilder builder = new StringBuilder();

        BufferedReader reader = new BufferedReader
                (new InputStreamReader(context.getResources().openRawResource(
                resourceId)));
        try {
            for (String line = reader.readLine(); 
                 line != null; line = reader.readLine()) {
                builder.append(line).append("\n");
            }
        } catch (Exception e) {
            throw new RuntimeException(e);
        }

        return builder.toString();
    }
}

2.2. 读取assts json文件

Android json功能解析,Java,android,json

    /**
     *assets获取json
     */
    private void getAssetsJson() {
        String jsonStr = JsonHelper.readAssetsFile(this,
                "json/applyJson.json");
        Log.e("assets获取json:",jsonStr);
    }

2.2. 读取raw json文件

Android json功能解析,Java,android,json

    /**
     * raw获取json
     */
    private void getRawJson() {
        String jsonStr = JsonHelper.readRawFile(this, R.raw.video_list);
        Log.e("raw获取json:",jsonStr);
    }

3. 解析json字符串

3.1. 数据源

private void initData() {
        parseObjectStr = "{\"msg\":\"操作成功\",\"code\":0,\"name\":\"网格员测试账号6\"," +
                "\"photo\":\"\",\"sessionId\":\"52312e93-c0d5-4a27-9425-2202212e178f\"" +
                ",\"dept\":{\"searchValue\":null,\"createBy\":null,\"createTime\":null," +
                "\"updateBy\":null,\"updateTime\":null,\"remark\":null,\"params\":{}," +
                "\"deptId\":13850,\"parentId\":9449,\"gridId\":13850,\"ancestors\":\"" +
                "0,100,8720,9448,9449\",\"deptName\":\"潍坊市-高密市-密水街道-东关社区居委会" +
                "-东关社区居委会网格一\",\"orderNum\":\"0\",\"leader\":null,\"phone\":null," +
                "\"email\":null,\"status\":\"0\",\"delFlag\":null,\"parentName\":" +
                "\"潍坊市-高密市-密水街道-东关社区居委会\",\"deptCode\":null,\"deptGrade\"" +
                ":\"4\",\"deptType\":null,\"isCgorg\":\"1\",\"lng\":null,\"lat\":null," +
                "\"address\":null,\"location\":null,\"component\":null,\"goNum\":null," +
                "\"gridHcount\":null,\"gridArea\":null,\"provinceId\":null,\"cityId\":null," +
                "\"countyId\":null,\"streetId\":null,\"communityId\":null,\"gridLevel\":null}}"
                        .replaceAll("\\/", "/");
        parseArrayStr = ("{\"hy\":[{\"acc\":\"0536010000067\",\"pas\":\"888888\"," +
                "\"wgyzh\":\"CS6\",\"region\":\"3707\"}],\"ip\":\"218.59.142.38\"}")
                .replaceAll("\\/", "/");
    }

3.2. 解析object

 /**
     * 解析Object
     */
    private void parseObject() {
        try {
            JSONObject jsonObject = new JSONObject(parseObjectStr);
            if (Integer.parseInt(jsonObject.get("code").toString()) == 0) {
                String sessionId = jsonObject.getString("sessionId");
                Log.e(TAG, "=sessionId=" + sessionId);
                JSONObject dept = new JSONObject(jsonObject.getString(
                        "dept"));
                String deptName = dept.getString("deptName");
                Log.e(TAG, "=deptName=" + deptName);

            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }

Android json功能解析,Java,android,json

3.3. 解析array

/**
     * 解析Array
     */
    private void parseArray() {
        try {
            JSONObject object = new JSONObject(parseArrayStr);
            String ip = object.getString("ip");
            JSONArray array = object.getJSONArray("hy");
            for (int i = 0; i < array.length(); i++) {
                JSONObject obj = (JSONObject) array.get(i);
                String wgname = obj.getString("wgyzh");
                Log.e(TAG, "=wgname=" + wgname);
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }

Android json功能解析,Java,android,json

3.4. 封装object(一)

    /**
     * @return
     * @desc 封装Object
     */
    private String getPackageObject1() {
        JSONObject jsonObject = new JSONObject();
        try {
            jsonObject.put("userName", "userName");
            jsonObject.put("deptName", "deptName");
            jsonObject.put("deptNickName", "deptNickName");
            jsonObject.put("deptId", "deptId");
            jsonObject.put("parentId", "parentId");
            Log.e(TAG, "=jsonObject=" + jsonObject.toString());
            return jsonObject.toString();
        } catch (JSONException e) {
            e.printStackTrace();
        }
        return "";
    }}

Android json功能解析,Java,android,json

3.4. 封装object(二)

 /**
     * @return
     * @desc 封装Object
     */
    private String getPackageObject2() {
        JSONObject jsonObject = new JSONObject();
        try {
            jsonObject.put("userName", "userName");
            jsonObject.put("deptName", "deptName");
            jsonObject.put("deptNickName", "deptNickName");
            jsonObject.put("deptId", "deptId");
            jsonObject.put("parentId", "parentId");
            JSONObject jsonObject2 = new JSONObject();
            jsonObject.put("fee", jsonObject2);
            jsonObject2.put("feeName", "费用名称");
            jsonObject2.put("feeValue", "费用值");
            Log.e(TAG, "=jsonObject=" + jsonObject.toString());
            return jsonObject.toString();
        } catch (JSONException e) {
            e.printStackTrace();
        }
        return "";
    }

Android json功能解析,Java,android,json

3.5. 封装array

 /**
     * @return
     * @desc 封装Array
     */
    private String getPackageArray() {
        JSONObject jsonObject = new JSONObject();
        try {
            JSONArray jsonArray = new JSONArray();
            jsonObject.put("feelist", jsonArray);
            for (int i = 0; i < 4; i++) {
                JSONObject jsonObject2 = new JSONObject();
                jsonObject2.put("feeName", "费用名称" + i);
                jsonObject2.put("feeValue", "费用值" + i);
                jsonArray.put(jsonObject2);
            }
            Log.e(TAG, "=jsonObject=" + jsonObject.toString());
            return jsonObject.toString();
        } catch (JSONException e) {
            e.printStackTrace();
        }
        return "";
    }

Android json功能解析,Java,android,json文章来源地址https://www.toymoban.com/news/detail-809262.html

到了这里,关于Android json功能解析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android MQTT连接阿里云使用Json解析数据

    这里有两种方法: 这里先介绍第一种方法: 切换到Android 目录: 按照如下图,添加依赖即可: 第二种方法: 打开Android Studio 然后切换到Android 目录找到Lib文件夹,将MQTT的JAR包复制进去即可。 然后点击project目录然后将MQTT JAR包导进去 添加完成之后作为库导入工程中 在MainA

    2024年02月03日
    浏览(32)
  • Android Studio实现解析HTML获取json,解析json图片URL,将URL存到list,进行瀑布流展示

    效果 build.gradle(app)添加的依赖(用不上的可以不加) AndroidManifest.xml 错误 如果出现错误:app:checkDebugDuplicateClasses 参考这篇博客尝试解决 activity_main.xml item_image.xml MainActivity Image适配器 ImageModel 接收图片URL

    2024年02月12日
    浏览(46)
  • Android : 序列化 JSON简单应用

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于阅读和写入,同时也易于机器解析和生成。它基于JavaScript的子集,采用完全独立于语言的文本格式来存储和表示数据。JSON是纯文本,并且完全是语言无关的。 JSON使用JavaScript语法来描述数据结构,但实际上JSON所

    2024年02月04日
    浏览(27)
  • 如何在pytest接口自动化框架中扩展JSON数据解析功能?

    上期内容简单说到了。params类类型参数的解析方法。相较于简单。本期内容就json格式的数据解析,来进行阐述。 在MeterSphere中,有两种方式可以进行json格式的数据维护。一种是使用他们自带的JsonSchema来填写key-value表单。另一种就是手写json。 手写json在日常工作中效率较低,

    2024年02月11日
    浏览(39)
  • Android进阶之路 - 存、取、读 本地 Json 文件

    最近在开发中又开始加载一些本地的json数据源,回头看之前竟然没记录,赶紧记录一波 ~ 如何准备一个合格的json文件? 准备一个txt格式的json串, 另存为(A)... 更改文件名后缀为json 、 更改编码格式为 UTF-8 - 保存后你就获取到了一个合格的json文件了 题外话 - 此处可不看 因

    2024年02月01日
    浏览(25)
  • android studio 添加并读取json配置文件

    第一步:在android  studio中添加json文件;   第二步:读取文件的函数

    2024年02月16日
    浏览(33)
  • java解析json

    代码: 步骤:     定义一个JSON数组,用于将服务器返回的数据传入到一个JSONArray对象中;     然后循环遍历这个JSONArray,从中取出每一个元素(JSONObject对象);     调用getString()方法即可将数据取出。 代码: 参考:java解析json_java 解析json_五宝茶四娃的博客-CSDN博客

    2024年02月10日
    浏览(30)
  • java对于JSON的解析

    1.1、JSONObject JSONObject是一种在Java中表示JSON对象的数据结构。它是一个无序的键值对集合,用花括号({})包围,并且每个键值对由冒号(:)分隔。 在Java中使用JSONObject,通常需要使用JSON库(如Jackson、Gson等)进行解析和操作。以下是一些常见的JSONObject操作: 创建JSONObject:

    2024年02月08日
    浏览(36)
  • Android设置app开机自启,网络监听,主线程完成UI渲染,HTTP网络请求工具,json数据处理,android使用sqlite,Android定时任务,日志打印

    在AndroidManifest.xml文件中添加权限 在AndroidManifest.xml文件中注册接收广播配置, 添加到manifest application节点下 在AndroidManifest.xml文件中添加节点属性, 指定安装目录为内部存储器, 而非SD卡 开机启动执行代码 gson是谷歌… implementation ‘gson-2.8.5’ 依赖无法下载, 直接使用jar包, 将ja

    2024年02月03日
    浏览(41)
  • java:解析json的几种方式

    Java是一种流行的编程语言,它提供了很多实用的库和工具,在处理JSON数据时也不例外。在本文中,我们将介绍Java中如何解析JSON数据。 JSON是一种轻量级的数据交换格式,它已经成为Web应用程序中最流行的数据格式之一。Java提供了许多库来处理JSON数据,包括Jackson、Gson和JS

    2024年02月03日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包