数据库解析json,数据库解析兼容zip和rar

本文目录一览:

求一个数据库函数解析json 如下图要求

数据库只是用来存储数据的,为什么不把处理数据的部分放在后台?

在这里你需要了解以下几个知识点。

在sqlserver 中存储json ,需要用字符串类型进行存储,一般用nvarchar()或 varchar()进行存储。

openJson:打开Json字符串

IsJson:判断一个字符串是不是合法的Json格式。是返回1,否返回0,null返回null。

Json_Value:从Json字符串中提取值。

Json_Query:Json字符串中提取对象或数组。

Json_Modify:更新Json字符串中的属性值,并返回更新的Json字符串

然后参考图片的需求,获取输入key值中的value字段可以得到如下sql语句。

从JSON中获取输入B的JSON对象

SELECT JSON_QUERY(json, CONCAT(‘$.’,key)) INTO K_VAL;

从B的JSON对象中,获取value字段的值

SELECT JSON_VALUE(K_VAL, ‘$.value’) INTO JSONVALUE;

最终我们的声明的函数大概是:

CREATE FUNCTION PARSEJSON(json VARCHAR(2000), key VARCHAR(200))

RETURNS VARCHAR

BEGIN

declare JSONVALUE VARCHAR;

declare K_VAL VARCHAR;

SELECT JSON_QUERY(json, CONCAT(‘$.’,key)) INTO K_VAL;

SELECT JSON_VALUE(K_VAL, ‘$.value’) INTO JSONVALUE;

return JSONVALUE;

END

json数据解析出错应该怎么办?

JSON数据解析错误处理办法如下:

-JSONValue failed. Error is: Unescaped control character [0x0D]

这个错误就是JSON解析的时候String 的时候出现转义字符。

对应用NSString 里的stringByReplacingOccurrencesOfString:@”\r”withString:@”” 取消掉转义字符就OK那!

NSString *json_string1=[json_string stringByReplacingOccurrencesOfString:@”\r”withString:@””];

或者是在线工具生成的代码,并不能保证百分百准确的。

如何解析返回的json格式数据

json数据格式解析我自己分为两种;

一种是普通的,一种是带有数组形式的;

普通形式的:

服务器端返回的json数据格式如下:

复制代码代码如下:

{“userbean”:{“Uid”:”100196″,”Showname”:”\u75af\u72c2\u7684\u7334\u5b50″,”Avtar”:null,”State”:1}}

分析代码如下:

复制代码代码如下:

// TODO 状态处理 500 200

int res = 0;

res = httpClient.execute(httpPost).getStatusLine().getStatusCode();

if (res == 200) {

/*

* 当返回码为200时,做处理

* 得到服务器端返回json数据,并做处理

* */

HttpResponse httpResponse = httpClient.execute(httpPost);

StringBuilder builder = new StringBuilder();

BufferedReader bufferedReader2 = new BufferedReader(

new InputStreamReader(httpResponse.getEntity().getContent()));

String str2 = “”;

for (String s = bufferedReader2.readLine(); s != null; s = bufferedReader2

.readLine()) {

builder.append(s);

}

Log.i(“cat”, “” + builder.toString());

JSONObject jsonObject = new JSONObject(builder.toString())

.getJSONObject(“userbean”);

String Uid;

String Showname;

String Avtar;

String State;

Uid = jsonObject.getString(“Uid”);

Showname = jsonObject.getString(“Showname”);

Avtar = jsonObject.getString(“Avtar”);

State = jsonObject.getString(“State”);

带数组形式的:

服务器端返回的数据格式为:

复制代码代码如下:

{“calendar”:

{“calendarlist”:

[

{“calendar_id”:”1705″,”title”:”(\u4eb2\u5b50)ddssd”,”category_name”:”\u9ed8\u8ba4\u5206\u7c7b”,”showtime”:”1288927800″,”endshowtime”:”1288931400″,”allDay”:false},

{“calendar_id”:”1706″,”title”:”(\u65c5\u884c)”,”category_name”:”\u9ed8\u8ba4\u5206\u7c7b”,”showtime”:”1288933200″,”endshowtime”:”1288936800″,”allDay”:false}

]

}

}

分析代码如下:

复制代码代码如下:

// TODO 状态处理 500 200

int res = 0;

res = httpClient.execute(httpPost).getStatusLine().getStatusCode();

if (res == 200) {

/*

* 当返回码为200时,做处理

* 得到服务器端返回json数据,并做处理

* */

HttpResponse httpResponse = httpClient.execute(httpPost);

StringBuilder builder = new StringBuilder();

BufferedReader bufferedReader2 = new BufferedReader(

new InputStreamReader(httpResponse.getEntity().getContent()));

String str2 = “”;

for (String s = bufferedReader2.readLine(); s != null; s = bufferedReader2

.readLine()) {

builder.append(s);

}

Log.i(“cat”, “” + builder.toString());

/**

* 这里需要分析服务器回传的json格式数据,

*/

JSONObject jsonObject = new JSONObject(builder.toString())

.getJSONObject(“calendar”);

JSONArray jsonArray = jsonObject.getJSONArray(“calendarlist”);

for(int i=0;ijsonArray.length();i++){

JSONObject jsonObject2 = (JSONObject)jsonArray.opt(i);

CalendarInfo calendarInfo = new CalendarInfo();

calendarInfo.setCalendar_id(jsonObject2.getString(“calendar_id”));

calendarInfo.setTitle(jsonObject2.getString(“title”));

calendarInfo.setCategory_name(jsonObject2.getString(“category_name”));

calendarInfo.setShowtime(jsonObject2.getString(“showtime”));

calendarInfo.setEndtime(jsonObject2.getString(“endshowtime”));

calendarInfo.setAllDay(jsonObject2.getBoolean(“allDay”));

calendarInfos.add(calendarInfo);

}

总结,普通形式的只需用JSONObject ,带数组形式的需要使用JSONArray 将其变成一个list。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/198288.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-04 10:24
下一篇 2024-12-04 10:24

相关推荐

  • Python 常用数据库有哪些?

    在Python编程中,数据库是不可或缺的一部分。随着互联网应用的不断扩大,处理海量数据已成为一种趋势。Python有许多成熟的数据库管理系统,接下来我们将从多个方面介绍Python…

    编程 2025-04-29
  • openeuler安装数据库方案

    本文将介绍在openeuler操作系统中安装数据库的方案,并提供代码示例。 一、安装MariaDB 下面介绍如何在openeuler中安装MariaDB。 1、更新软件源 sudo…

    编程 2025-04-29
  • JSON的MD5

    在Web开发过程中,JSON(JavaScript Object Notation)是最常用的数据格式之一。MD5(Message-Digest Algorithm 5)是一种常用…

    编程 2025-04-29
  • 数据库第三范式会有删除插入异常

    如果没有正确设计数据库,第三范式可能导致删除和插入异常。以下是详细解释: 一、什么是第三范式和范式理论? 范式理论是关系数据库中的一个规范化过程。第三范式是范式理论中的一种常见形式…

    编程 2025-04-29
  • 使用Java将JSON写入HDFS

    本篇文章将从以下几个方面详细阐述Java将JSON写入HDFS的方法: 一、HDFS简介 首先,先来了解一下Hadoop分布式文件系统(HDFS)。HDFS是一个可扩展性高的分布式…

    编程 2025-04-29
  • leveldb和unqlite:两个高性能的数据库存储引擎

    本文将介绍两款高性能的数据库存储引擎:leveldb和unqlite,并从多个方面对它们进行详细的阐述。 一、leveldb:轻量级的键值存储引擎 1、leveldb概述: lev…

    编程 2025-04-28
  • Python怎么导入数据库

    Python是一种高级编程语言。它具有简单、易读的语法和广泛的库,让它成为一个灵活和强大的工具。Python的数据库连接类型可以多种多样,其中包括MySQL、Oracle、Post…

    编程 2025-04-28
  • 如何使用Newtonsoft datatable转Json

    Newtonsoft DataTable 是一个基于.NET的JSON框架,也是一个用于序列化和反序列化JSON的强大工具。 在本文中,我们将学习如何使用Newtonsoft Da…

    编程 2025-04-28
  • Python内置函数zip()的用法

    本文将通过多个方面阐述Python内置函数zip()的用法,包含代码示例。 一、zip()函数的概念 zip()函数是Python中的一个内置函数,它接受任意数量的可迭代对象作为参…

    编程 2025-04-27
  • JPRC – 轻松创建可读性强的 JSON API

    本文将介绍一个全新的 JSON API 框架 JPRC,通过该框架,您可以轻松创建可读性强的 JSON API,提高您的项目开发效率和代码可维护性。接下来将从以下几个方面对 JPR…

    编程 2025-04-27

发表回复

登录后才能评论