gson与混合阅读

我正在尝试用gson读取json,但我无法使用“简单”的gson示例。

来自: https : //sites.google.com/site/gson/streaming

public List readJsonStream(InputStream in) throws IOException { JsonReader reader = new JsonReader(new InputStreamReader(in, "UTF-8")); List messages = new ArrayList(); reader.beginArray(); while (reader.hasNext()) { Message message = gson.fromJson(reader, Message.class); messages.add(message); } reader.endArray(); reader.close(); return messages; } 

这是问题,如果我尝试:

 JsonReader reader; Gson gson = new Gson(); gson.fromJson(reader,Program.class); 

它甚至没有建立。

 The method fromJson(String, Class) in the type Gson is not applicable for the arguments (JsonReader, Class) 

根据eclipse似乎有一种方法: fromJson(JsonReader arg0,Type arg1)

更换

 import android.util.JsonReader; 

 import com.google.gson.stream.JsonReader 

做到了! =)

有人提到,fromJson方法接受参数0作为String。 尝试创建一个将inputStream转换为String的方法。

 static public String generateString(InputStream stream) { InputStreamReader reader = new InputStreamReader(stream); BufferedReader buffer = new BufferedReader(reader); StringBuilder sb = new StringBuilder(); try { String cur; while ((cur = buffer.readLine()) != null) { sb.append(cur).append("\n"); } } catch (IOException e) { e.printStackTrace(); } try { stream.close(); } catch (IOException e) { e.printStackTrace(); } return sb.toString(); }