Я пытаюсь сохранить 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, который вы получили, не был бы удобочитаемым. так что вы делаете, когда получаете данные? это похоже на то, что вы используете некоторую библиотеку json для отмены данных, которые вы получаете. эту же библиотеку можно использовать для ее повторного запуска. –
Если вы используете правильные операторы БД, вам не нужно будет избегать строк, прежде чем хранить их в БД. Конечно, вам может понадобиться избежать ваших (странных) строк XML/HTML, прежде чем использовать их в качестве значений JSON, но это не зависит от базы данных. –
@ andrew Я добавил код, который я написал для сохранения данных в базе данных. Фактически я конвертирую данные, которые являются JSON в строку (причина в том, что мне нужно заменить некоторое содержимое, например {} скобки на []), а затем эту преобразованную строку, которую я сохраняю в базе данных – Judy