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(); }