【问题标题】:gson with mixed read混合读取的 gson
【发布时间】:2013-07-03 16:31:23
【问题描述】:

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

发件人:https://sites.google.com/site/gson/streaming

    public List<Message> readJsonStream(InputStream in) throws IOException {
      JsonReader reader = new JsonReader(new InputStreamReader(in, "UTF-8"));
      List<Message> messages = new ArrayList<Message>();
      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<T>) in the type Gson is not applicable for the arguments (JsonReader, Class<Program>)

根据eclipse好像有一个方法: fromJson(JsonReader arg0, Type arg1)

【问题讨论】:

    标签: java android parsing gson


    【解决方案1】:

    替换

    import android.util.JsonReader;   
    

    import com.google.gson.stream.JsonReader 
    

    做到了! =)

    【讨论】:

      【解决方案2】:

      提到 fromJson 方法接受参数 0 作为字符串。尝试创建一个将 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(); 
          }
      

      【讨论】:

      • 不,我无法将所有内容都放在内存中。我必须流一点,但不是全部。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多