URLにデータがあります。サーバースクリプトがあります:http get requestから "Malformed JSON"
$db = null;
$results = "{}";
require_once("connect.php");
/* Query */
if($db != null) {
$stmt = $db->prepare("SELECT category, category_color FROM categories ORDER BY category");
$stmt->execute();
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
}
/* Close db connection */
$db = null;
echo json_encode($results);
Soooo ..私はAndroid Appでこれらのデータを取得します。
[{"category":"Animals","category_color":"green"},
{"category":"Art","category_color":"orange"},
{"category":"Sport","category_color":"blue"},
{"category":"Video games","category_color":"red"}]
そして、私のアプリのコードがあります、私の件のデータを取得するために(これは私の最初のアプリですので、インターネット上で見つかったいくつかのコードが私を助けた):これは私のアプリは、スクリプトから得るものです
@Override
protected String doInBackground(String... urls) {
String url = urls[0];
String parsedString;
HttpURLConnection c = null;
try {
URL u = new URL(url);
c = (HttpURLConnection) u.openConnection();
c.setRequestMethod("GET");
c.setRequestProperty("Content-type", "application/json");
c.setRequestProperty("Content-length", "0");
c.setUseCaches(false);
c.setAllowUserInteraction(false);
c.setConnectTimeout(this.timeout);
c.setReadTimeout(this.timeout);
c.connect();
int status = c.getResponseCode();
switch (status) {
case 200:
case 201:
//Do stuff to parse my JSON to an HashMap
}
} catch(IOException ex) {
Logger.getLogger(getClass().getName()).log(Level.SEVERE, null, ex);
} finally {
if (c != null) {
try {
c.disconnect();
} catch (Exception ex) {
Logger.getLogger(getClass().getName()).log(Level.SEVERE, null, ex);
}
}
}
return null;
}
私は、スタック上の各応答のために、この結果毎回見つけ
StringBuilder sb = new StringBuilder();
String line;
try {
BufferedReader r1 = new BufferedReader(new InputStreamReader(c, "UTF-8"));
while ((line = r1.readLine()) != null) {
sb.append(line).append("\n");
}
} finally {
is.close();
}
return sb.toString();
:私はこのような(各要素の[カテゴリ、category_color])のHashMapに論文件のデータを解析するために多くのものを試してみました。私はこのコードをしようとしたとき、私のコンソールが印刷されています。しかし:E/JSONタスク:Coundが不正な形式のJSON私がやろう解析できません: "JSONObject JSON =新しいJSONObject(結果を);
ので、そこにあります私の最後の質問:?。
何私のPHPスクリプトから取得する簡単なリンクが役に立つことができますが、現時点では、私は、クリーンな作業答えを見つけることができませんJSONからHashMapを取得するための最良の方法です
あなたが投稿した文字列は、jsonarjectではなくjsonarrayです。 – Blackbelt
ああ神様、私はばか気分、私は違いを知らなかった。どのように私はそれを解析することができますか? –