如何在java中获取mysql5.7版本里的json-CSDN论坛

如何在java中获取mysql5.7版本里的json-CSDN论坛,第1张

DELIMITER $$

USE `dw`$$

DROP FUNCTION IF EXISTS `fn_Json_getKeyValue`$$

CREATE DEFINER=`data`@`%` FUNCTION `fn_Json_getKeyValue`(

in_JsonArray VARCHAR(4096),#JSON数组字符串

in_Index TINYINT, #JSON对象序号,序号从1开始

in_KeyName VARCHAR(64)#键名

) RETURNS VARCHAR(512) CHARSET utf8

BEGIN

DECLARE vs_return VARCHAR(4096);

DECLARE vs_JsonArray, vs_Json, vs_KeyName VARCHAR(4096);

#declare vs_Json varchar(4096);

DECLARE vi_pos1, vi_pos2 SMALLINT UNSIGNED;

#写监控日志

#insert into dwt_etl_log(sp_name, title, description)

#values('dwfn_Json_getKeyValue', '通过Json键名取键值', concat('in_JsonArray=', in_JsonArray));

SET vs_JsonArray = TRIM(in_JsonArray);

SET vs_KeyName = TRIM(in_KeyName);

IF vs_JsonArray = '' OR vs_JsonArray IS NULL

OR vs_KeyName = '' OR vs_KeyName IS NULL

OR in_Index <= 0 OR in_Index IS NULL THEN

SET vs_return = NULL;

ELSE

#去掉方括号

SET vs_JsonArray = REPLACE(REPLACE(vs_JsonArray, '[', ''), ']', '');

#取指定的JSON对象

SET vs_json = SUBSTRING_INDEX(SUBSTRING_INDEX(vs_JsonArray,'}', in_index),'}',-1);

IF vs_json = '' OR vs_json IS NULL THEN

SET vs_return = NULL;

ELSE

SET vs_KeyName = CONCAT('"', vs_KeyName, '":');

SET vi_pos1 = INSTR(vs_json, vs_KeyName);

IF vi_pos1 > 0 THEN

#如果键名存在

SET vi_pos1 = vi_pos1 + CHAR_LENGTH(vs_KeyName);

SET vi_pos2 = LOCATE(',', vs_json, vi_pos1);

IF vi_pos2 = 0 THEN

#最后一个元素没有','分隔符,也没有结束符'}'

SET vi_pos2 = CHAR_LENGTH(vs_json) + 1;

END IF;

SET vs_return = REPLACE(MID(vs_json, vi_pos1, vi_pos2 - vi_pos1), '"', '');

END IF;

END IF;

END IF;

RETURN(vs_return);

END$$

DELIMITER ;

测试: {"old_current_score":"2","new_current_score":"0","old_grade_id":"1","new_grade_id":"1","grade_time":"2016-04-09 00:43:26","grade_upgrade_time":"2017-04-09 00:43:26"}

select fn_Json_getKeyValue(reason,1,'old_grade_id');

使用json-libjar这个工具\x0d\public String getJson(Object obj){\x0d\ JSONObject json;\x0d\ json = JSONObjectfromObject(obj);\x0d\ return jsontoString();\x0d\}\x0d\使用jquery来处理json\x0d\//转换为json数据 datas可以用ajax从后台获取上面getJson中的数据\x0d\var jsonDatas = eval("(" + datas + ")");\x0d\ //循环遍历数据\x0d\jQueryeach(jsonDatas, function(item) {\x0d\//循环\x0d\});

在 Java 中,可以使用 json 库来解析和遍历 JSON 对象。以下是一个简单的示例代码,展示如何遍历 JSON 对象并取出所有的 value 值:

假设有以下 JSON 对象:

{

"name": "张三",

"age": 20,

"gender": "male"

}

可以使用以下代码遍历 JSON 对象并取出所有的 value 值:

import orgjsonJSONObject;

public class JsonExample {

public static void main(String[] args) {

// JSON 字符串

String jsonStr = "{\"name\":\"张三\",\"age\":20,\"gender\":\"male\"}";

// 将 JSON 字符串转为 JSONObject 对象

JSONObject jsonObject = new JSONObject(jsonStr);

// 遍历 JSONObject 对象,取出所有 value 值

for (String key : jsonObjectkeySet()) {

Systemoutprintln(jsonObjectget(key));

}

}

}

输出结果如下:

张三

20

male

在上面的代码中,首先将 JSON 字符串转为 JSONObject 对象。然后,使用 keySet() 方法获取所有的键名,遍历 JSONObject 对象,使用 get() 方法获取每个键的值并输出。

java 访问一个接口得到接口返回JSON,步骤是怎么做的

写个servlet,将结果转换成ArrayJson对象,打印出这个json就行,前端通过ajax去请求获得json数据。java转json需要用到相应的jar包,百度一下吧。

java中的接口是一种特殊的类,使用关键字interface创建。接口功能完全实现后,可以打成jar包,提供给其他公司使用。

要返回json格式数据,可以把接口中抽象方法的返回值类型规定为JSONObject或JSONString类型。这样当其他公司调用时,得到的数据就是json数据了。

另外,以jar形式提供的接口,可以通过反编译得到你的源码,如果你不希望开源,就要加密了。

访问接口时code返回2怎么回事

访问接口时code返回2怎么回事

一般情况接口有调用说明的,需要看接口提供方提供的说明。

AFNeorking 接口返回值类型不是json 时怎么做

AF>

给题主两种思路参考:

1、内置一个浏览器内核

内置浏览器就是在抓取的程序中,启动一个浏览器内核,使我们获取到 js 渲染后的页面,这样我们就跟采集静态页面一样了。这种工具常用的有以下三种: - Selenium - HtmlUnit - PhantomJs

这些工具都能帮助我们解决数据异步加载的问题,但是他们都存在缺陷,那就是效率不高而且不稳定。

2、反向解析法

什么是反向解析法呢?我们 js 渲染页面的数据是通过 Ajax 的方式从后端获取的,我们只需要找到对应的 Ajax 请求连接就 OK,这样我们就获取到了我们需要的数据,反向解析法的好处就是这种方式获取的数据都是 json 格式的数据,解析起来也比较方便,另一个好处就是相对页面来说,接口的变化概率更小。同样它有两个不足之处,一个是在 Ajax 时你需要有耐心有技巧,因为你需要在一大推请求中找到你想要的,另一个不足的地方就是对 JavaScript 渲染的页面束手无策。

package bean;

import comgooglegsonannotationsSerializedName;

import javautilList;

public class TestBean

{

private String status;

private Msg msg;

public String getStatus() {

return status;

}

public void setStatus(String status) {

thisstatus = status;

}

public Msg getMsg() {

return msg;

}

public void setMsg(Msg msg) {

thismsg = msg;

}

public class Msg

{

private List<City> city;

public List<City> getCity() {

return city;

}

public void setCity(List<City> city) {

thiscity = city;

}

public class City

{

@SerializedName("@attributes")

private SpecialKey key;//奇怪的key处理

public SpecialKey getKey() {

return key;

}

public void setKey(SpecialKey key) {

thiskey = key;

}

public class SpecialKey

{

private String cityX;

private String cityY;

private String cityname;

private String centername;

private String fontColor;

private String pyName;

private String state1;

private String state2;

private String stateDetailed;

private String tem1;

private String tem2;

private String temLow;

private String windState;

private String windDir;

private String windPower;

private String humidity;

private String url;

public String getCityX() {

return cityX;

}

public void setCityX(String cityX) {

thiscityX = cityX;

}

public String getCityY() {

return cityY;

}

public void setCityY(String cityY) {

thiscityY = cityY;

}

public String getCityname() {

return cityname;

}

public void setCityname(String cityname) {

thiscityname = cityname;

}

public String getCentername() {

return centername;

}

public void setCentername(String centername) {

thiscentername = centername;

}

public String getFontColor() {

return fontColor;

}

public void setFontColor(String fontColor) {

thisfontColor = fontColor;

}

public String getPyName() {

return pyName;

}

public void setPyName(String pyName) {

thispyName = pyName;

}

public String getState1() {

return state1;

}

public void setState1(String state1) {

thisstate1 = state1;

}

public String getState2() {

return state2;

}

public void setState2(String state2) {

thisstate2 = state2;

}

public String getStateDetailed() {

return stateDetailed;

}

public void setStateDetailed(String stateDetailed) {

thisstateDetailed = stateDetailed;

}

public String getTem1() {

return tem1;

}

public void setTem1(String tem1) {

thistem1 = tem1;

}

public String getTem2() {

return tem2;

}

public void setTem2(String tem2) {

thistem2 = tem2;

}

public String getTemLow() {

return temLow;

}

public void setTemLow(String temLow) {

thistemLow = temLow;

}

public String getWindState() {

return windState;

}

public void setWindState(String windState) {

thiswindState = windState;

}

public String getWindDir() {

return windDir;

}

public void setWindDir(String windDir) {

thiswindDir = windDir;

}

public String getWindPower() {

return windPower;

}

public void setWindPower(String windPower) {

thiswindPower = windPower;

}

public String getHumidity() {

return humidity;

}

public void setHumidity(String humidity) {

thishumidity = humidity;

}

public String getUrl() {

return url;

}

public void setUrl(String url) {

thisurl = url;

}

}

}

}

}

可以使用Gson,没有可以去网上下载一个。注意bean文件的对应的类型可以改成你自己数据的类型,其实如果没有算数运算全用String最好,免得返回奇怪的东西报错。关键在于用@SerializedName("@attributes")处理奇怪的key

TestBean bean = new Gson()fromJson(json, TestBeanclass);

List<TestBeanMsgCity> cityList = beangetMsg()getCity();

for (int i = 0; i < cityListsize();i++)

{

if (cityListget(i)getKey()getCityname()equals("福州"))

{

// 这就是你要的那条“福州”的对象了

}

}

Java 读写json格式的文件方法:

一、要解决这个问题首先要知道json格式是什么?

JSON格式:

比如学生有学号,姓名,性别等。

用json表示则为:

{"studno":"11111","studname":"":"男"}(各个字段都是字符型)

这代表一个学生的信息。

如果多个,如下:

[{"studno":"122222","studname":"":"男"}]

这就是json格式。

二、那如何 *** 作json格式的文件呢?

解答:就是直接读写文件,再把读出来的文件内容格式化成json就可以了。

三、具体 *** 作:

1、有一个实体类,如下:

public class ElectSet {

public String xueqi;

public String xuenian;

public String startTime;

public String endTime;

public int menshu;

public String isReadDB;

//{"xueqi":,"xuenian":,"startTime":,"endTime":,"renshu":,"isReadDB":}

public String getXueqi() {

   return xueqi;

}

public void setXueqi(String xueqi) {

   thisxueqi = xueqi;

}

public String getXuenian() {

   return xuenian;

}

public void setXuenian(String xuenian) {

   thisxuenian = xuenian;

}

public String getStartTime() {

   return startTime;

}

public void setStartTime(String startTime) {

   thisstartTime = startTime;

}

public String getEndTime() {

   return endTime;

}

public void setEndTime(String endTime) {

   thisendTime = endTime;

}

public int getMenshu() {

   return menshu;

}

public void setMenshu(int menshu) {

   thismenshu = menshu;

}

public String getIsReadDB() {

   return isReadDB;

}

public void setIsReadDB(String isReadDB) {

   thisisReadDB = isReadDB;

}

}

2有一个json格式的文件,存的就是他的信息,如下:

Setsjson:

{"xuenian":"2007-2008","xueqi":"1","startTime":"2009-07-19 08:30","endTime":"2009-07-22 18:00","menshu":"10","isReadDB":"Y"}

3具体 *** 作:

/

 取出文件内容,填充对象

/

public ElectSet findElectSet(String path){

   ElectSet electset=new ElectSet();

   String sets=ReadFile(path);//获得json文件的内容

   JSONObject jo=JSONObjectfromObject(sets);//格式化成json对象

   //Systemoutprintln("------------" jo);

   //String name = jogetString("xuenian");

   //Systemoutprintln(name);

   electsetsetXueqi(jogetString("xueqi"));

   electsetsetXuenian(jogetString("xuenian"));

   electsetsetStartTime(jogetString("startTime"));

   electsetsetEndTime(jogetString("endTime"));

   electsetsetMenshu(jogetInt("menshu"));

   electsetsetIsReadDB(jogetString("isReadDB"));

   return electset;

}

//设置属性,并保存

public boolean setElect(String path,String sets){

   try {

    writeFile(path,sets);

    return true;

   } catch (IOException e) {

    // TODO Auto-generated catch block

    eprintStackTrace();

    return false;

   }

}

//读文件,返回字符串

public String ReadFile(String path){

    File file = new File(path);

    BufferedReader reader = null;

    String laststr = "";

    try {

     //Systemoutprintln("以行为单位读取文件内容,一次读一整行:");

     reader = new BufferedReader(new FileReader(file));

     String tempString = null;

     int line = 1;

     //一次读入一行,直到读入null为文件结束

     while ((tempString = readerreadLine()) != null) {

      //显示行号

      Systemoutprintln("line " line ": " tempString);

      laststr = laststr tempString;

      line ;

     }

     readerclose();

    } catch (IOException e) {

     eprintStackTrace();

    } finally {

     if (reader != null) {

      try {

       readerclose();

      } catch (IOException e1) {

      }

     }

    }

    return laststr;

}

         //把json格式的字符串写到文件

public void writeFile(String filePath, String sets) throws IOException {

    FileWriter fw = new FileWriter(filePath);

    PrintWriter out = new PrintWriter(fw);

    outwrite(sets);

    outprintln();

    fwclose();

    outclose();

   }

4调用,使用(在网站的controller里调用的):

//取出json对象

public void GetElectSettings(>

以上就是关于如何在java中获取mysql5.7版本里的json-CSDN论坛全部的内容,包括:如何在java中获取mysql5.7版本里的json-CSDN论坛、怎样从java后台获取json字符串并转换为json对象输出、java遍历json对象取出所有value值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存