Я пытаюсь получить «определение» Строка из следующего фрагмента кода JSON:Как создать строку из объекта JSON?
{
"headword": "Google",
"senses": [
{
"definition": [
"a very popular search enginecomputer program that allows you to search for information on the Internet. Google also provides other Internet services including e-mail, maps, social networking, and video sharing."
]
}
],
"datasets": [
"ldoce5",
"dictionary"
],
"id": "cqAFJKTgNJ",
"url": "/v2/dictionaries/entries/cqAFJKTgNJ",
"pronunciations": [
{
"audio": [
{
"lang": "British English",
"type": "pronunciation",
"url": "/v2/dictionaries/assets/ldoce/gb_pron/google1004.mp3"
},
{
"lang": "American English",
"type": "pronunciation",
"url": "/v2/dictionaries/assets/ldoce/us_pron/google1004a.mp3"
}
],
"ipa": "ˈɡuːɡəl"
}
]
}
Проблема заключается в том, что в текущем сниппета «определение» JSON, как представляется, JSONObject и всякий раз, когда я пытаюсь сделайте это String, я получаю сообщение об ошибке, что это не строка. Когда я просто оставить объект как есть, выходной сигнал включает в себя скобку и другие символы:
{"definition":["a very popular search enginecomputer program that allows you to search for information on the Internet. Google also provides other Internet services including e-mail, maps, social networking, and video sharing."]}
Есть ли способ, чтобы сделать хорошую и опрятную строку, которая будет содержать точное определение и больше ничего. Btw, используя библиотеку org.json.
Код:
public class MainActivity {
private static String word;
public static void wordInitializer() throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
word = reader.readLine();
}
public static void processing() throws Exception {
String path = "http://api.pearson.com/v2/dictionaries/ldoce5/entries?headword=" + word;
URL url = new URL(path);
Scanner scanner = new Scanner(url.openStream());
String line = "";
while (scanner.hasNext())
line += scanner.nextLine();
scanner.close();
JSONObject obj = new JSONObject(line);
JSONObject results = obj.getJSONArray("results").getJSONObject(0);
JSONArray senses = results.getJSONArray("senses");
String definition = senses.getJSONObject(0).toString();
System.out.println(definition);
}
public static void main(String[] args) throws Exception {
wordInitializer();
processing();
}
где ваш код – redFIVE
Это массив JSON с одним элементом, строка JSON. См. Формат JSON [здесь] (http://json.org/). –
определение - это элемент в json, содержащий массив .... –