class Talk {
String[] values;
try {
InputStream is = getAssets().open("jdata.txt");
DataInputStream in = new DataInputStream(is);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
//Read File Line By Line
while ((br.readLine()) != null) {
// Print the content on the console
strLine = strLine + br.readLine();
}
} catch (Exception e) { //Catch exception if any
System.err.println("Error: " + e.getMessage());
}
parse(strLine);
}
public void parse(String jsonLine) {
Data data = new Gson().fromJson(jsonLine, Data.class);
values[0]= data.toString();
return;
}
}
これはjdata.txt
である:これはjava.lang.IllegalStateException:予想BEGIN_OBJECTエラーが
"{" + "'users':'john' + "}"
私Data.java
:
public class Data {
public String users;
}
私が手にエラーがされています
java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 9
誰でもできるこのエラーが意味することとそれをどのように削除するのかを私に明白に伝えますか?
編集:
私は答えを得ました。これらは私がやらなければならない調整です。まず、String配列を配列リストに変更します。
List<String> values = new ArrayList<String>();
次の微調整はここにあった:
strLine = currentLine;
currentLine = br.readLine();
//Read File Line By Line
while (currentLine != null) {
// Print the content on the console
strLine = strLine + currentLine;
currentLine = br.readLine();
}
最終微調整はここにあった:コードの
String val = data.toString();
values.add(val);
一部の部品は冗長かもしれないが、私は後でそれの世話をします。
あなたのjsonは無効ですこれは正しいjson形式です{{"users": "john" } " – RanRag
@RanRagこれを試してみましたか?うまくいきませんでした。それは正しい結果を得るためにそれを変更しました。 – Hick