2014-09-11 2 views
0

저는 고정 스키마가있는 MsSQL 서버 2012 및 Json 문자열이 있습니다.Java로 MsSQL에 Json 문자열을 삽입하십시오.

Json을 서버에 삽입하려고하면 Json을 자동으로 구문 분석 한 다음 모든 값을 삽입하는 방법이 있어야합니다.

{ 
    "UUID": "1408611728327", 
    "accuracy": 0, 
    "timestamp": 1408611668.274444000, 
    "x": -2.46, 
    "y": 24.779999, 
    "z": -17.46 
} 
+0

MongoDB는 자동으로 처리하지만 mySQL과 같은 RDB 시스템을 사용하면 테이블을 미리 설정해야하며 – ControlAltDel

+0

https://www.simple-talk.com/sql/을 자동으로 구문 분석 할 방법이 없습니다. t-sql-programming/consuming-json-strings-in-sql-server/ – Donal

+0

이 데이터를 가져 와서 데이터베이스에 보관하는 메서드를 작성하지 않는 이유는 무엇입니까? 그런 다음 메서드를 호출하여 자동으로 파싱하는 방법이 있습니다. – forgivenson

답변

1

어쩌면 정규식으로 포맷 :

이 같은 JSON 모양은 어떻게? 그래서 다음과 같이됩니다 :

insert into my_table values ('1408611728327',0,1408611668.274444000,-2.46,24.779999,-17.46); 

당연히 테이블 필드가 올바른 순서라고 가정합니다. 같은 뭔가 : json으로는 null 속성을 가지고 있으며, 따라서 (x는 널 (null) json으로 전혀 X를 포함하지 않을 경우, 어쩌면 설정에 의해 변경 될 수 있습니다) 표시되지 않는 경우

myJson.replace("{","("); // you need round brackets instead of the json style ones 
myJson.replace("}",")"); 
myJson.replaceAll("\".*\": ([^,]*),","$1"); // drops the name of the columns, only keeps the values, comma separated 
myJson.replaceAll("\"","\'"); // sql strings are between ' not " 
myJson= "insert into my_table values " + myJson + ";"; 

이 실패합니다.

관련 문제