Ⅰ 數據存儲到伺服器上用jsON格式比較好還是直接資料庫比較好
將Json格式的數據保存到資料庫本來就是很奇葩的做法。
Json更多的時候用於數據的傳輸,尤其是程序後端與前台界面之間進行交互。
Ⅱ 求一個資料庫函數解析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;