在 Android 应用开发中,使用数据库对数据进行存储和操作是非常常见的。而 ON,作为一种轻量级数据交换格式,也被广泛用于数据传输和存储。本文将深入剖析 Android 数据库中使用 ON 数据的方法。

一、什么是 ON

ON(JavaScript Object Notation)是一种轻量级的数据交换格式,属于 JavaScript 语言的子集,于 2023 年被 Douglas Crockford 提出。ON 可以表示数字、布尔、字符串、对象、数组等基本类型数据,也可以嵌套表示复杂数据结构,具有易读、易解析、易于跨平台等优点。

二、在 Android 中使用 ON

Android 中有两种主要方式使用 ON 数据:一种是通过 ONObject 和 ONArray 对象直接解析 ON 数据;另一种是在数据库中使用 TEXT 类型字段存储 ON 数据,方便后续的读取和操作。

1.解析 ON 数据

ONObject 和 ONArray 是 Android 平台提供的两个常用 ON 解析器类。ONObject 表示 ON 对象,可以通过 get()/getString()/getBoolean() 等方法获取属性值,也可以通过 put() 方法向对象中添加属性;ONArray 表示 ON 数组,可以通过 get()/getInt()/getString() 等方法获取数组元素值。

示例代码:

“`java

// 解析 ON 字符串

String jsonString = “{”name”:”Tom”,”age”:20,”score”:[80, 90, 95]}”;

ONObject json = new ONObject(jsonString);

String name = json.getString(“name”); // 获取属性值

int age = json.getInt(“age”);

ONArray scoreArray = json.getONArray(“score”);

int firstScore = scoreArray.getInt(0); // 获取数组元素值

// 构建 ON 对象

ONObject newJson = new ONObject();

newJson.put(“name”, “Tom”);

newJson.put(“age”, 20);

ONArray scoreArray = new ONArray();

scoreArray.put(80);

scoreArray.put(90);

scoreArray.put(95);

newJson.put(“score”, scoreArray);

String newJsonString = newJson.toString(); // “{”name”:”Tom”,”age”:20,”score”:[80,90,95]}”

“`

2.存储 ON 数据

在 Android 应用的开发中,我们常常需要将一些动态变化的数据存储到本地,以便下次启动应用时重新读取。针对这种情况,我们可以通过将 ON 数据存储到数据库 TEXT 类型字段中实现数据的持久化。

示例代码:

“`java

// 创建数据库表

db.execSQL(“CREATE TABLE IF NOT EXISTS person(_id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, address TEXT)”);

// 将 ON 数据插入到数据库中

String jsonStr = “{”name”:”Tom”,”address”:”New York”}”;

ContentValues cv = new ContentValues();

cv.put(“name”, “Tom”);

cv.put(“address”, jsonStr);

db.insert(“person”, null, cv);

// 从数据库中读取 ON 数据

Cursor cursor = db.query(“person”, null, null, null, null, null, null);

if (cursor.moveToNext()) {

String json = cursor.getString(cursor.getColumnIndex(“address”));

ONObject jsonObject = new ONObject(json);

String name = jsonObject.getString(“name”);

String address = jsonObject.getString(“address”);

}

“`

三、ON 使用注意事项

1.ON 数据的格式应该保证正确,否则可能会导致解析失败或者数据存储不完整。

2.ON 数据的字段名和类型应该与数据库表的列名和类型一一对应,否则可能会导致数据写入或读取出错。

3.ON 数据的大小应该根据实际需要进行控制,避免存储过大的 ON 数据造成数据库性能下降或者存储失败的情况。

四、结论

本文深入剖析了 Android 中使用 ON 的方法,包括 ON 数据的解析和存储。对于需要频繁读取或者需要支持数据持久化的数据来说,使用 ON 数据存储方式是非常便捷和实用的。同时,使用 ON 数据也需要注意数据格式、映射关系和数据大小等问题,以确保数据的完整性和性能的可靠性。

相关问题拓展阅读:

求助android解析ON的问题

key是String类铅滚型的,比如 “userId”,String类型的value要用双引号,int类型什么都不用,如:

{

“T1”:

{“BU_ID”:63,“BU_NAME”:“testBU”

{“BU_ID”槐戚余:61,“BU_NAME”仔歼:“Sunford”},

{“BU_ID”:62,“BU_NAME”:“ZXHTsss”},

{“BU_ID”:42,“BU_NAME”:“Conti1”},

{“BU_ID”:43,“BU_NAME”:“NewBU”}

>

}

android Json接收是采用的(key,value)这样悉困肆形式,所以你传输或者是接收的时候也要这种格式

{“尺贺BU_ID”:61,”BU_NAME”:”Sunford”},

{“BU_ID”:62,”BU_NAME”:”ZXHTsss”},

{“BU_ID”:42,”BU_NAME”:”Conti1″},

{“BU_ID”:43,”BU_NAME”:”NewBU”}>

String str=”你接收的字符串”

JsonArray arry=new JsonArray( str);

然后在睁轿一个个的遍历出来

for(int i=0;i

JsonObject obj=new JsonObject();

obj.getString(“BU_ID”);/ obj.getInt(“BU_ID”)

obj.getString(“BU_NAME”);

}

这是一个json格式验证御卖的链接,可以验证凳拆激自己写的json格式是否正确枣袜

换成这样格启链卜式就对了:

{

‘T1’:

{

‘BU_ID’: ’63’,

‘BU_NAME’: ‘testBU’

}, {

‘BU_ID’: ’61’,

‘BU_NAME’: ‘Sunford’

}, {

‘BU_ID’: ’62’,

‘悄穗BU_NAME’: ‘ZXHTsss’

}, {

‘BU_ID’: ’42’,

‘BU_NAME’: ‘Conti1’

}, {

‘BU_ID’: ’43’,

‘唤差BU_NAME’: ‘NewBU’

}

>

}

android json解析三种方式哪种效率更高

用org.json以及谷歌提供gson来解析json数据的方式更好一些。

安卓下通常采用以下几种方式解析json数据:

1、org.json包(已经集成到android.jar中了)

2、google提供的gson库

3、阿里巴巴的fastjson库

4、json-lib

以Google出品的Gson为例,具体步骤为:

1、首先,从 code.google.com/p/google-gson/downloads/list下载GsonAPI:

google-gson-1.7.1-release.zip 把gson-1.7.jar copy到libs(项目根目录新建一个libs文件夹)中。 可以使用以下两种方法解析ON数据,通过获取JsonReader对象解析ON数据。

代码如下:

String jsonData = “”;

try{

JsonReader reader = new JsonReader(new StringReader(jsonData));

reader.beginArray();

while(reader.hasNext()){

reader.beginObject();

while(reader.hasNext()){

String tagName = reader.nextName();

if(tagName.equals(“username”)){

System.out.println(reader.nextString());

}

else if(tagName.equals(“userId”)){

System.out.println(reader.nextString());

}

}

reader.endObject();

}

reader.endArray();

}

catch(Exception e){

e.printStackTrace();

}

2、使用Gson对象获取User对象数据进行相应的操作:

代码如下:

Type listType = new TypeToken>(){}.getType();

Gson gson = new Gson();

LinkedList users = gson.fromJson(jsonData, listType);

for (Iterator iterator = users.iterator(); iterator.hasNext();) {

User user = (User) iterator.next();

System.out.println(user.getUsername());

System.out.println(user.getUserId());

}

3、如果要处理的ON字符串只包含一个ON对象,则可以直接使用fromJson获取一个User对象:

代码如下:

String jsonData = “{”username”:”arthinking”,”userId”:001}”;

Gson gson = new Gson();

User user = gson.fromJson(jsonData, User.class);

System.out.println(user.getUsername());

System.out.println(user.getUserId());

  一、什么是ON?

  ON是一种取代XML的数据结构,和xml相比,它更小巧但描述能力却不差,由于它的小巧所以网络传输数据将减少更多流量从而加快速度。

  ON就是一串字符串 只不过元素会使用特定的符号标注。

  {} 双括号表示对象

   中括号表示数组

  ”” 双引号内是属性或值

  : 冒号表示后者是前者的值(这个值可以是字符串、数字、也可以是另一个数组或对象)

  所以 {“name”: “Michael”} 可以理解为是一个包含name为Michael的对象

  而就表示包含两个对象的数组

  当然了,你也可以使用{“name”:}来简化上面一部,这是一个拥有一个name数组的对象

  二、ON解析之传统的ON解析

  1、生成On字符串

  public static String createJsonString(String key, Object value) {

  ONObject jsonObject = new ONObject();

  jsonObject.put(key, value);

  return jsonObject.toString();

  }

  2、解析ON字符串

  分为以下三种情况,一个JavaBean,一个List数组,一个嵌套Map的List数组:

  import java.util.ArrayList;

  import java.util.HashMap;

  import java.util.Iterator;

  import java.util.List;

  import java.util.Map;

  import org.json.ONArray;

  import org.json.ONObject;

  import com.android.myjson.domain.Person;

  /**

  * 完成对json数据的解析

  *

  */

  public class JsonTools {

  public static Person getPerson(String key, String jsonString) {

  Person person = new Person();

  try {

  ONObject jsonObject = new ONObject(jsonString);

  ONObject personObject = jsonObject.getONObject(“person”);

  person.setId(personObject.getInt(“id”));

  person.setName(personObject.getString(“name”));

  person.setAddress(personObject.getString(“address”));

  } catch (Exception e) {

  // TODO: handle exception

  }

  return person;

  }

  public static List getPersons(String key, String jsonString) {

  List list = new ArrayList();

  try {

  ONObject jsonObject = new ONObject(jsonString);

  // 返回json的数组

  ONArray jsonArray = jsonObject.getONArray(key);

  for (int i = 0; i listKeyMaps(String key,

  String jsonString) {

  List> list = new ArrayList>();

  try {

  ONObject jsonObject = new ONObject(jsonString);

  ONArray jsonArray = jsonObject.getONArray(key);

  for (int i = 0; i ,>三、ON解析之GSON

  1、生成ON字符串

  import com.google.gson.Gson;

  public class JsonUtils {

  public static String createJsonObject(Object obj) {

  Gson gson = new Gson();

  String str = gson.toJson(obj);

  return str;

  }

  }二、解析ON

  import java.util.ArrayList;

  import java.util.List;

  import java.util.Map;

  import com.google.gson.Gson;

  import com.google.gson.reflect.TypeToken;

  ;

  public class GsonTools {

  public GsonTools() {

  // TODO Auto-generated constructor stub

  }

  /**

  * @param

  * @param jsonString

  * @param cls

  * @return

  */

  public static T getPerson(String jsonString, Class cls) {

  T t = null;

  try {

  Gson gson = new Gson();

  t = gson.fromJson(jsonString, cls);

  } catch (Exception e) {

  // TODO: handle exception

  }

  return t;

  }

  /**

  * 使用Gson进行解析 List

  *

  * @param

  * @param jsonString

  * @param cls

  * @return

  */

  public static List getPersons(String jsonString, Class cls) {

  List list = new ArrayList();

  try {

  Gson gson = new Gson();

  list = gson.fromJson(jsonString, new TypeToken>() {

  }.getType());

  } catch (Exception e) {

  }

  return list;

  }

  /**

  * @param jsonString

  * @return

  */

  public static List getList(String jsonString) {

  List list = new ArrayList();

  try {

  Gson gson = new Gson();

  list = gson.fromJson(jsonString, new TypeToken>() {

  }.getType());

  } catch (Exception e) {

  // TODO: handle exception

  }

  return list;

  }

  public static List> listKeyMaps(String jsonString) {

  List> list = new ArrayList>();

  try {

  Gson gson = new Gson();

  list = gson.fromJson(jsonString,

  new TypeToken>>() {

  }.getType());

  } catch (Exception e) {

  // TODO: handle exception

  }

  return list;

  }

  }

  三、ON解析之FastON

  import java.util.ArrayList;

  import java.util.List;

  import java.util.Map;

  import com.alibaba.fastjson.ON;

  import com.alibaba.fastjson.TypeReference;

  public class JsonTool {

  public static T getPerson(String jsonstring, Class cls) {

  T t = null;

  try {

  t = ON.parseObject(jsonstring, cls);

  } catch (Exception e) {

  // TODO: handle exception

  }

  return t;

  }

  public static List getPersonList(String jsonstring, Class cls) {

  List list = new ArrayList();

  try {

  list = ON.parseArray(jsonstring, cls);

  } catch (Exception e) {

  // TODO: handle exception

  }

  return list;

  }

  public static List> getPersonListMap1(

  String jsonstring) {

  List> list = new ArrayList>();

  try {

  list = ON.parseObject(jsonstring,

  new TypeReference>>() {

  }.getType());

  } catch (Exception e) {

  // TODO: handle exception

  }

  return list;

  }

  }

  总结:

  ON对于移动设备来说,尤其对于网络环境较差和流量限制的情况下,相对于XML格式的数据传输会更节省流量,传输效率更高。在这三种解析方式中FastJson是效率更高的,推荐使用。

关于android 数据库 json的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


新软师兄 » 深度剖析 Android 数据库之 ON 使用方法 (android 数据库 json)
50T免费网盘资源大集合【持续更中~~~~】:点击查看

dase kand pornhan.mobi xvideo desi gay pcso 2pm result today pinoytvfriends.com where i can watch bad romeo كلام فى النيك wfporn.com قصص محارم حديثة busporn porngugu.mobi indian sexx vedios sex ka video noticieroporno.com himachal pradesh sex com
nero hentai hentaitgp.com ламия хентай www.mom xxx.com alohaporn.me sahara knite mature fucking tubepatrolporn.com bhabi sex indian girl sex gotporn.mobi xnxx family strocks ang probinsyano july 20 2022 full episode youtube pilipinoteleserye.com ano ang pambansang sasakyan ng pilipinas
احلي سكس محارم pornxporn.org نيك فلاحى multi.xnxx alohaporn.net telugu sex chart سكس قصيرات arabysexy.org نيك نقاب www assames sex com umora.info desi sexy bhabi 8teenx bukaporn.com india hot sex videos