使用 GSON 库解析 JSON 时出现问题
Issue in parsing JSON using GSON library
我正在使用 GSON
解析本地 JSON
Library.Here 是我的 json 结构
{
"employees":[
{
"id":100,
"name":"Ranjith"
},
{
"id":101,
"name":"Satheesh"
}]
}
我必须在列表中显示这个view.Here是我的代码
public void loadfromfile()
{
try {
AssetManager am = getAssets();
InputStream is = am.open("sample.json");
BufferedReader br=new BufferedReader(new InputStreamReader(is));
Gson gson=new Gson();
JsonReader reader=new JsonReader(br);
reader.beginObject();
while (reader.hasNext()) {
String name = reader.nextName();
if (name.equals("success")) {
success =reader.nextBoolean();
}
else if(name.equals("employees")){
reader.beginArray();
while (reader.hasNext()) {
Employee employee= gson.fromJson(String.valueOf(reader), Employee.class);
emplist.add(employee);
}
reader.endArray();
}
}
reader.endObject();
reader.close();
dataAdapter.notifyDataSetChanged();
}catch (IOException ex){
ex.printStackTrace();
}
当我 运行 这个 IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1
时。我正在使用一个单独的 class 来设置和获取 json.How 中的字段来解决这个问题。
确保导入
import com.google.gson.stream.JsonReader
不要转成String,直接传reader给gson。
Employee employee= gson.fromJson(reader, Employee.class);
我正在使用 GSON
解析本地 JSON
Library.Here 是我的 json 结构
{
"employees":[
{
"id":100,
"name":"Ranjith"
},
{
"id":101,
"name":"Satheesh"
}]
}
我必须在列表中显示这个view.Here是我的代码
public void loadfromfile()
{
try {
AssetManager am = getAssets();
InputStream is = am.open("sample.json");
BufferedReader br=new BufferedReader(new InputStreamReader(is));
Gson gson=new Gson();
JsonReader reader=new JsonReader(br);
reader.beginObject();
while (reader.hasNext()) {
String name = reader.nextName();
if (name.equals("success")) {
success =reader.nextBoolean();
}
else if(name.equals("employees")){
reader.beginArray();
while (reader.hasNext()) {
Employee employee= gson.fromJson(String.valueOf(reader), Employee.class);
emplist.add(employee);
}
reader.endArray();
}
}
reader.endObject();
reader.close();
dataAdapter.notifyDataSetChanged();
}catch (IOException ex){
ex.printStackTrace();
}
当我 运行 这个 IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1
时。我正在使用一个单独的 class 来设置和获取 json.How 中的字段来解决这个问题。
确保导入
import com.google.gson.stream.JsonReader
不要转成String,直接传reader给gson。
Employee employee= gson.fromJson(reader, Employee.class);