当前位置:首页 » 编程语言 » sql返回json数据
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql返回json数据

发布时间: 2022-04-01 00:11:23

A. mysql数据库中某个字段存的是json数据,如何对json数据中的数据进行操作

这个可以吧json格式的字符串解析成数组json_decode()函数,变成数组以后就可以方便操作了,可以删除数组中的任意一项,也可以增加一项比如:array_push($data,['sort'=>3,'catentryId'=>10003]),再变成json格式的存入数据库。方法有多种,这里简单的示例下

B. sql语句查询返回值类型是个json怎么获取集合

前端js,还是后端的程序?如果是后台的,是asp?.net? php?, jsp?还是其他的?

C. 怎么把sql的文件转换成json

自己编写程序即可,循环结果集,拼接json

D. java将json数据解析为sql语句

importjava.util.Iterator;
importjava.util.Set;
importjava.util.Map.Entry;

importcom.google.gson.JsonArray;
importcom.google.gson.JsonElement;
importcom.google.gson.JsonObject;
importcom.google.gson.JsonParser;

publicclassSql
{
publicstaticStringparseSQL(Stringjson)
{
JsonParserparser=newJsonParser();
JsonObjectobj=(JsonObject)parser.parse(json);;
Stringtable=obj.get("table").getAsString();
Stringop_type=obj.get("op_type").getAsString();
Stringsql="";
if("I".equals(op_type))
{
sql+="INSERTINTO"+table+"(";
JsonObjectafter=(JsonObject)obj.get("after");
Set<Entry<String,JsonElement>>entry=after.entrySet();
Iterator<Entry<String,JsonElement>>it=entry.iterator();
Stringvs="values(";
while(it.hasNext())
{
Entry<String,JsonElement>elem=it.next();
Stringkey=elem.getKey();
Stringval=elem.getValue().toString();
sql+=key+",";
vs+=val+",";
}
sql=sql.replaceAll(",\s*$","");
vs=vs.replaceAll(",\s*$","");
sql+=")"+vs+")";
}
elseif("U".equals(op_type))
{
sql+="UPDATE"+table+"SET";
JsonObjectafter=(JsonObject)obj.get("after");
Set<Entry<String,JsonElement>>entry=after.entrySet();
Iterator<Entry<String,JsonElement>>it=entry.iterator();
while(it.hasNext())
{
Entry<String,JsonElement>elem=it.next();
Stringkey=elem.getKey();
Stringval=elem.getValue().toString();
sql+=key+"="+val+",";
}
sql=sql.replaceAll(",\s*$","");
sql+="WHERE";
after=(JsonObject)obj.get("before");
entry=after.entrySet();
it=entry.iterator();
while(it.hasNext())
{
Entry<String,JsonElement>elem=it.next();
Stringkey=elem.getKey();
Stringval=elem.getValue().toString();
sql+=key+"="+val+"AND";
}
sql=sql.replaceAll("\s*AND\s*$","");
}
elseif("D".equals(op_type))
{
sql+="DELETEFROM"+table+"WHERE";
JsonObjectafter=(JsonObject)obj.get("before");
Set<Entry<String,JsonElement>>entry=after.entrySet();
Iterator<Entry<String,JsonElement>>it=entry.iterator();
while(it.hasNext())
{
Entry<String,JsonElement>elem=it.next();
Stringkey=elem.getKey();
Stringval=elem.getValue().toString();
sql+=key+"="+val+"AND";
}
sql=sql.replaceAll("\s*AND\s*$","");
}
returnsql;
}

publicstaticvoidmain(String[]args)
{
Stringinsert=
"{"table":"GG.TCUSTORD","op_type":"I","op_ts":"2013-06-0222:14:36.000000","current_ts":"2015-09-18T13:39:35.447000","pos":"00000000000000001444","tokens":{"R":"AADPkvAAEAAEqL2AAA"},"after":{"CUST_CODE":"WILL","ORDER_DATE":"1994-09-30:15:33:00","PRODUCT_CODE":"CAR","ORDER_ID":"144","PRODUCT_PRICE":17520.00,"PRODUCT_AMOUNT":3,"TRANSACTION_ID":"100"}}";
Stringupdate=
"{"table":"GG.TCUSTORD","op_type":"U","op_ts":"2013-06-0222:14:41.000000","current_ts":"2015-09-18T13:39:35.748000","pos":"00000000000000002891","tokens":{"L":"206080450","6":"9.0.80330","R":"AADPkvAAEAAEqLzAAC"},"before":{"CUST_CODE":"BILL","ORDER_DATE":"1995-12-31:15:00:00","PRODUCT_CODE":"CAR","ORDER_ID":"765","PRODUCT_PRICE":15000.00,"PRODUCT_AMOUNT":3,"TRANSACTION_ID":"100"},"after":{"CUST_CODE":"BILL","ORDER_DATE":"1995-12-31:15:00:00","PRODUCT_CODE":"CAR","ORDER_ID":"765","PRODUCT_PRICE":14000.00,"PRODUCT_AMOUNT":3,"TRANSCATION_ID":"100"}}";
Stringdelete=
"{"table":"GG.TCUSTORD","op_type":"D","op_ts":"2013-06-0222:14:41.000000","current_ts":"2015-09-18T13:39:35.766000","pos":"00000000000000004338","tokens":{"L":"206080450","6":"9.0.80330","R":"AADPkvAAEAAEqLzAAC"},"before":{"CUST_CODE":"DAVE","ORDER_DATE":"1993-11-03:07:51:35","PRODUCT_CODE":"PLANE","ORDER_ID":"600"}}";
System.out.println(parseSQL(insert));
System.out.println(parseSQL(update));
System.out.println(parseSQL(delete));
}
}

E. SQL server存储过程实现JSON数据解析,然后插入数据库表求高手指点

两种方式
1、SQL有个charindex 函数,可以用这个函数配合substr实现 split功能实现循环插入
2、sql 2008以上存储过程支持表值参数,json反序列化在程序里更方便,所以反序列化之后通过表值参数传递

F. 使用sql语言将查询结果转化为json,数据库中的浮点数、时间在json中的显示与数据库中不一致,这是为什么

这样处理下

G. sql中对json数据字段的查询

先取出string,再在内存里转换为对象并检查。
ps:存json是没问题,但又想存json又想直接查,违反了数据库的范式。

H. 咨询一下数据库里通过SQL结构化查询出的表数据记录怎么转换为JSON格式

import java.io.StringWriter;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.codehaus.jackson.JsonFactory;
import org.codehaus.jackson.JsonGenerator;
import org.codehaus.jackson.JsonParser.Feature;
import org.codehaus.jackson.map.JsonSerializer;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.SerializationConfig.Feature;
import org.codehaus.jackson.type.TypeReference;
public class JsonUtils
{
private static ObjectMapper mapper = null;
static { mapper = new ObjectMapper();
mapper.configure(SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS, false);
mapper.configure(JsonParser.Feature.ALLOW_BACKSLASH_ESCAPING_ANY_CHARACTER, true);
}
public static String toJson(Object target)
{
String json = "";
try {
StringWriter sw = new StringWriter();
JsonGenerator gen = new JsonFactory().createJsonGenerator(sw);
mapper.writeValue(gen, target);
gen.close();
json = sw.toString();
}
catch (Exception e) {
throw new UnexpectedException("对象转换Json字符串出错," + target.toString(), e);
}
return json;
}
}

I. plsql 获取json数组用什么API

json是数据传输格式,像传输xml文本,txt,二进制文本文件一样,数据库的话可以使用mongDB,来代替Oracle,它存储的格式就和json类似,不确定是不是你要的

J. js获取后台case 里的SQL返回json数据 怎么判断进入哪一个条件

function (data, textStatus),是Post请求的回调,就是在后台请求完成后,会调用这个函数,并传递data,和textStatus这两个参数,从字面意思来看,data根据业务处理的数据有关,textStatus应该跟HttpRequest有关。
if(data[0].qing=='1'):这句话“qiangdiao"应该是”清掉的意思吧,用来判断delete操作的状态,判断数据是否清除掉。如果清除掉了调用init_content();初始化一些内容,否则弹出提示失败。
Json是一种数据描述称之为数据交换协议也可以,只要不同的系统按照这个结构描述数据,他们之间就可以交换数据。具体解释,可以网络搜索。
这里应该是用了库,具体什么库要看引用,要想深入学习,可以搜索javascript异步加载关键字,可以具体了解这个$.post的实现机制。