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的實現機制。