웹 사이트의 JSON 응답을 데이터베이스에 저장하려고합니다. 늦게 나는이 JSON 문자열에 액세스하여 데이터를 처리하고있다. 하지만 JSON 개체로 구문 분석 할 수 없습니다. 나는 문자열의 문자가 이스케이프되어야한다는 것을 깨닫습니다. 데이터를 문자열로 저장하므로 JSON 데이터로 돌아 오는 데이터 결과가 데이터베이스에서 이스케이프되지 않습니다. JSON 데이터를 데이터베이스에 저장할 수있는 방법이 있습니까? 예JSON 데이터를 데이터베이스에 저장하는 방법
:
{"RULE":[{"replace":{"value":"","type":"text"},"match":{"value":"<a [^>]*><img src="[^"]*WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites[^>]*>\s*</a>","type":"text"}},{"replace":{"value":"","type":"text"},"match":{"value":"<a [^>]*><img src="[^"]*WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites[^>]*>\s*</a>","type":"text"}}]}
은 "및 \를 즉, (또한 응답을 받고)로 데이터베이스에 저장하려면 여기
{"RULE":[{"replace":{"value":"","type":"text"},"match":{"value":"<a [^>]*><img src=\"[^\"]*WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites[^>]*>\\s*</a>","type":"text"}},{"replace":{"value":"","type":"text"},"match":{"value":"<a [^>]*><img src=\"[^\"]*WindowsLiveWriter/IconsfordifferentSocialBookmarkingSites[^>]*>\\s*</a>","type":"text"}}]}
를 이스케이프 내가를 저장하는 데 사용했던 코드입니다 데이터베이스의 데이터
// here the raw_data is the data from the website
JSONObject jo = new JSONObject(raw_data);
// Get the JSONObject value associated with the search result key.
jo = jo.getJSONObject("pipe");
jo = jo.getJSONObject("definition");
String def=jo.toString();
JSONArray jo1=jo.getJSONArray("modules");
JSONArray jo2=jo.getJSONArray("wires");
/*
* Write the contents in the data base
*
*
*/
def =def.replaceAll("[']", "\\\\\'"); //creates problem for strings with '
def =def.replaceAll("&", "%26");
String tablename="PipesTable2";
System.out.println(def);
database d=new database();
웹 사이트에서 json이 포함 된 문자열을 보내고 있습니다. 해당 문자열에는 이미 이스케이프가 필요합니다. 그렇지 않다면받은 json은 읽을 수 없을 것입니다. 그래서 데이터를 받았을 때 당신은 무엇을하고 있습니까? 당신이받는 데이터를 이스케이프 (unescape)하기 위해 일부 json 라이브러리를 사용하고있는 것 같습니다. 동일한 라이브러리를 사용하여이를 다시 이스케이프 할 수 있습니다. –
올바른 DB 작업을 사용하는 경우 DB에 저장하기 전에 문자열을 이스케이프 처리하지 않아도됩니다. 물론 JSON 값으로 사용하기 전에 (이상한) XML/HTML 문자열을 이스케이프 처리해야하지만 DB와는 별개입니다. –
@ andrew 데이터베이스에 데이터를 저장하기 위해 작성한 코드를 추가했습니다. 실제로 나는 JSON 인 데이터를 문자열로 변환하고있다. (그 이유는 []와 같은 내용의 {}와 같은 내용을 대체해야하고 그 변환 된 문자열은 데이터베이스에 저장한다. – Judy