在Android中接收大于字符串的JSON

时间:2014-03-13 11:52:47

标签: android json androidhttpclient

我是Android的新手,我遇到了无法通过服务器通信和JSON解决的问题:

我使用HttpClient类从服务器接收JSON对象,就像我见过的很多例子一样:

//Crear un cliente por defecto 
HttpClient mCliente = new DefaultHttpClient();

//Indicar la url
StringBuilder sb = new StringBuilder([SERVER]);

//Establecer la conexión después de indicar la url
HttpPost mPost = new HttpPost(sb.toString());

//Creamos una lista de atributos
List<BasicNameValuePair> paresNombreValor = new ArrayList<BasicNameValuePair>();

//Añadimos los elementos a la lista
paresNombreValor.add(new BasicNameValuePair("operacion", "1"));  //Operación Login
paresNombreValor.add(new BasicNameValuePair("email", stringCorreo));
paresNombreValor.add(new BasicNameValuePair("password", stringPass));

//UrlEncodedFormEntity : Codificamos la lista para el envio por post
mPost.setEntity(new UrlEncodedFormEntity(paresNombreValor));

//Ejecutamos la solicitud y obtenemos una respuesta
HttpResponse respuesta = mCliente.execute(mPost);

//Obtenemos el contenido de la respuesta
HttpEntity entity = respuesta.getEntity();

//Convertimos el stream a un String 
BufferedReader buf = new BufferedReader(new InputStreamReader(entity.getContent()));

StringBuilder sb1 = new StringBuilder();
String line = null;

while ((line = buf.readLine()) != null) {
     sb1.append(line + "\r\n");
}
res = sb1.toString();
if (res != null)
{
JSONArray resultadoJSON= new JSONArray(res);   //<-- Here is my problem
...

问题是我收到的JSON比String大,我还没有找到其他方法将接收转换为不使用带内容作为参数的String的JSON。

任何想法?

非常感谢

2 个答案:

答案 0 :(得分:0)

如果您想对您的流程执行相同操作,请使用stringbuilder代替string

答案 1 :(得分:0)

打算将您的输入流转换为字符串使用JsonReader它允许您从Input Stream读取json也有助于节省内存