文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Android中Json数据读取与创建的方法

2022-06-06 09:57

关注

首先介绍下JSON的定义,JSON是JavaScript Object Notation的缩写。

一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案(有点类似于正则表达式,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换。JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为。

JSON的结构:
(1) Name/Value Pairs(无序的):类似所熟知的Keyed list、 Hash table、Disctionary和Associative array。在Android平台中同时存在另外一个类 "Bundle",某种程度上具有相似的行为。

(2) Array(有序的):一组有序的数据列表。

一:  Json的特性和在数据交互中的地位就不用说了,直接看案例。

  首先在android studio中创建assets文件目录,用于存放Json数据文件,android studio 1.3 默认项目文件目录下是没有assets文件夹的,

  所以需要我们进行创建,创建方法如下:

     

  创建好assets文件目录以后,在其目录下创建一个Text.json文件。

二:如何获得assets文件目录下的Json数据:

  在eclipse下是:InputStreamReader(getAssets().open("Text.json"),"UTF-8");获得该文件数据,并以InputStream返回数据。

  而在android studio则是通过:JsonLearn.this.getClass().getClassLoader().getResourceAsStream("assets/" + "Text.json");返回相应InputStream.

三:案例展示:

  1:案例项目app界面如下,通过按钮分别实现Json数据的读取和创建,并展示在TextView中。

  2:代码如下:


 package activity.cyq.datalrearn;
 import android.support.v.app.AppCompatActivity;
 import android.os.Bundle;
 import android.view.View;
 import android.widget.TextView;
 import org.json.JSONArray;
 import org.json.JSONException;
 import org.json.JSONObject;
 import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 public class JsonLearn extends AppCompatActivity {
   private TextView writeText, readText;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_json_learn);
     readText = (TextView) findViewById(R.id.readJsonText);
     writeText = (TextView) findViewById(R.id.writeJsonText);
     
     findViewById(R.id.readJsioBtn).setOnClickListener(new View.OnClickListener() {
       @Override
       public void onClick(View v) {
         
         InputStream is = JsonLearn.this.getClass().getClassLoader().getResourceAsStream("assets/" + "Text.json");
         InputStreamReader streamReader = new InputStreamReader(is);
         BufferedReader reader = new BufferedReader(streamReader);
         String line;
         StringBuilder stringBuilder = new StringBuilder();
         try {
           while ((line = reader.readLine()) != null) {
             // stringBuilder.append(line);
             stringBuilder.append(line);
           }
           reader.close();
           reader.close();
           is.close();
         } catch (IOException e) {
           e.printStackTrace();
         }
         try {
           JSONObject person = new JSONObject(stringBuilder.toString());
           JSONArray infArray = person.getJSONArray("inf");
           for (int i = ; i < infArray.length(); i++) {
             JSONObject inf_Array = infArray.getJSONObject(i);
             readText.append("name:" + inf_Array.getString("name") + "\n");
             readText.append("IdCard:" + inf_Array.getString("IdCard"));
             readText.append("age:" + inf_Array.getInt("age"));
             readText.append("married:" + inf_Array.getBoolean("married"));
           }
         } catch (JSONException e) {
           e.printStackTrace();
         }
       }
     });
     
     findViewById(R.id.writeJsioBtn).setOnClickListener(new View.OnClickListener() {
       @Override
       public void onClick(View v) {
         try {
           JSONObject inf = new JSONObject();
           inf.put("number", );
           JSONArray array = new JSONArray();
           JSONObject arr_ = new JSONObject();
           arr_.put("name", "张三");
           arr_.put("age", );
           arr_.put("IdCard", "XC");
           arr_.put("married", true);
           JSONObject arr_ = new JSONObject();
           arr_.put("name", "李四");
           arr_.put("age", );
           arr_.put("IdCard", "@DC");
           arr_.put("married", true);
           array.put(, arr_);
           array.put(, arr_);
           inf.put("inf", array);
           writeText.setText(inf.toString());
         } catch (JSONException e) {
           e.printStackTrace();
         }
       }
     });
   }
 }

以上是通过Android中Json数据读取与创建的方法,希望能够帮助到大家,在实际的项目开发中可以通过Gson(谷歌)Fast-Json(阿里巴巴)这两款Json处理API。

您可能感兴趣的文章:android客户端从服务器端获取json数据并解析的实现代码Android中Retrofit 2.0直接使用JSON进行数据交互Android中使用Gson解析JSON数据的两种方法Android网络编程之获取网络上的Json数据实例Android访问php取回json数据实例android调用国家气象局天气预报接口json数据格式解释Android App中读取XML与JSON格式数据的基本方法示例android针对json数据解析方法实例分析android解析JSON数据Android开发使用json实现服务器与客户端数据的交互功能示例


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-移动开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯