我有一个像下面的Json字符串我试图将其作为行值插入数据库。 例如,这里将有两行插入数据库中,包含4列 列为status,filename,mainpic,fullurl 我理解我想要做的基本想法,但我需要知道如何解析它 顺便说一句,我的JSON将始终以这种方式格式化,因此无需担心它的格式化
{"status":"success",
"filename":"c3336eab-133d-4e78-ba9a-135152e0cddf.jpg",
"mainpic":"true","fullurl":"../userimages/c3336eab-133d-4e78-ba9a-135152e0cddf.jpg"},
{"status":"success",
"filename":"6dffc7f0-17e2-40c5-ab6d-c380697ae4d8.jpg",
"mainpic":"true","fullurl":"../userimages/6dffc7f0-17e2-40c5-ab6d-c380697ae4d8.jpg"}
答案 0 :(得分:0)
作为一个起点,您可以看一下这个全面的T-SQL JSON解析函数......
http://www.simple-talk.com/sql/t-sql-programming/consuming-json-strings-in-sql-server/
但是,由于您的JSON非常简单,因此可能需要根据您的需要制作缩减版本。
答案 1 :(得分:0)
使用SQLCLR实现是一种选择。
http://jqsql.com/来源https://github.com/ercananlama/JQSQL
稍微修改输入并将其声明为json数组,将空字符串作为第二个参数传递以选择root。
EXEC jqsql.totable '[ {"status":"success", "filename":"c3336eab-133d-4e78-ba9a-135152e0cddf.jpg", "mainpic":"true", "fullurl":"../userimages/c3336eab-133d-4e78-ba9a-135152e0cddf.jpg"}, {"status":"success", "filename":"6dffc7f0-17e2-40c5-ab6d-c380697ae4d8.jpg", "mainpic":"true", "fullurl":"../userimages/6dffc7f0-17e2-40c5-ab6d-c380697ae4d8.jpg"} ]', ''
返回像这样的结果集
status filename mainpic fullurl ------- ---------------------------------------- ------- ------------------------------------------------------ success c3336eab-133d-4e78-ba9a-135152e0cddf.jpg 1 ../userimages/c3336eab-133d-4e78-ba9a-135152e0cddf.jpg success 6dffc7f0-17e2-40c5-ab6d-c380697ae4d8.jpg 1 ../userimages/6dffc7f0-17e2-40c5-ab6d-c380697ae4d8.jpg