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

求一个数据库函数解析json 如下图要求,第1张

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

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

在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

1,首先,需要创建一个jS0n文件,或者用户自行从网络上获得jSOn文件。

2,如果用户是创建的。还需要在新建的json文件中输入数据。数据格式可以上网搜索。

3,准备好json数据文件以后,接着创建一个HtmⅠ文件。在Script标签内创建一千函数,使用Ajax语言获得和读取json文件。

4,获取和读取文件以后,在读取数据前。用户还需要创建一个用户遍历json文件全部数据的函数。

5,创建数据遍历函数以后,在获取和读函数中进行调用。遍历读取文件中的数据。

6,获取Json文件中的全部数据以后,将数据用HtmⅠ代码呈现到网页上。

从json数组中得到java数组,可以对该数组进行转化,如将JSONArray转化为String型、Long型、Double型、Integer型、Date型等等。

分别采用jsonArray下的getString(index)、getLong(index)、getDouble(index)、getInt(index)等方法。

同样,如果要获取java数组中的元素,只需要遍历该数组。

Java代码 收藏代码

/

将json数组转化为Long型

@param str

@return

/

public static Long[] getJsonToLongArray(String str) {

JSONArray jsonArray = JSONArrayfromObject(str);

Long[] arr=new Long[jsonArraysize()];

for(int i=0;i<jsonArraysize();i++){

arr[i]=jsonArraygetLong(i);

Systemoutprintln(arr[i]);

}

return arr;

}

/

将json数组转化为String型

@param str

@return

/

public static String[] getJsonToStringArray(String str) {

JSONArray jsonArray = JSONArrayfromObject(str);

String[] arr=new String[jsonArraysize()];

for(int i=0;i<jsonArraysize();i++){

arr[i]=jsonArraygetString(i);

Systemoutprintln(arr[i]);

}

return arr;

}

/

将json数组转化为Double型

@param str

@return

/

public static Double[] getJsonToDoubleArray(String str) {

JSONArray jsonArray = JSONArrayfromObject(str);

Double[] arr=new Double[jsonArraysize()];

for(int i=0;i<jsonArraysize();i++){

arr[i]=jsonArraygetDouble(i);

}

return arr;

}

/

将json数组转化为Date型

@param str

@return

/

public static Date[] getJsonToDateArray(String jsonString) {

JSONArray jsonArray = JSONArrayfromObject(jsonString);

Date[] dateArray = new Date[jsonArraysize()];

String dateString;

Date date;

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");

for (int i = 0; i < jsonArraysize(); i++) {

dateString = jsonArraygetString(i);

try {

date=sdfparse(dateString);

dateArray[i] = date;

} catch (Exception e) {

eprintStackTrace();

}

}

return dateArray;

}

public static void main(String[] args) {

JSONArray jsonLongs = new JSONArray();

jsonLongsadd(0, "111");

jsonLongsadd(1, "22225");

jsonLongsadd(2, new Long(333));

jsonLongsadd(3, 444);

Long[] log=getJsonToLongArray(jsonLongstoString());

for(int i=0;i<loglength;i++){

Systemoutprintln(log[i]);

}

JSONArray jsonStrs = new JSONArray();

jsonStrsadd(0, "2011-01-01");

jsonStrsadd(1, "2011-01-03");

jsonStrsadd(2, "2011-01-04 11:11:11");

Date[] d=getJsonToDateArray(jsonStrstoString());

for(int i=0;i<dlength;i++){

Systemoutprintln(d[i]);

}

}

/结果如下:

111

222

333

444

Sat Jan 01 00:00:00 CST 2011

Mon Jan 03 00:00:00 CST 2011

Tue Jan 04 00:00:00 CST 2011

/

以上就是关于求一个数据库函数解析json 如下图要求全部的内容,包括:求一个数据库函数解析json 如下图要求、哪里获取json全球、如何将json数据转化为数据库文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/sjk/9494643.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存