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

Android中Json数据读取与创建的方法,第1张

概述首先介绍下JSON的定义,JSON是JavaScriptObjectNotation的缩写。一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案(有点类似于正则表达式,获得了当今大部分语

首先介绍下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);     /*读取Json数据*/     findVIEwByID(R.ID.readJsioBtn).setonClickListener(new VIEw.OnClickListener() {       @OverrIDe       public voID onClick(VIEw v) {         /*获取到assets文件下的TExt.Json文件的数据,并以输出流形式返回。*/         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();         }       }     });     /*创建Json数据并显示*/     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","@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中Json数据读取与创建的方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1142024.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存