2014-03-13 51 views
0
一個String

我是新Android和我有,我不能與服務器通信和JSONs解決問題更大:接聽JSON比Android的

我從服務器接收使用JSON對象HttpClient的類,像很多的例子,我已經看到:

//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比字符串大,我還沒有找到其他的方式來接收轉換成JSON不以內容爲參數使用String。

任何想法?

非常感謝您

+3

你是什麼意思大於一個字符串? –

+0

在JSONArray中嘗試使用JSONObject而不是JSONArray resultadoJSON = new JSONArray(res); – VIGNESH

+0

大於字符串的最大大小 – user2377195

回答

0

打算你的輸入流轉換爲字符串使用JsonReader它允許你從輸入流也將讀取JSON有助於節省內存

+0

這是更麻煩,但它的作品!謝謝! – user2377195

0

使用stringbuilder代替string如果u想要做同樣的你的過程

+0

我認爲StringBuilder具有與String類型相同的最大尺寸。我錯了嗎? StringBuilder沒有最大尺寸? – user2377195

+0

你有沒有試過用stringbuilder哥們或者只是覺得這個 –

+0

對不起,我只是想。但是JSONArray的構造方法不能使用StringBuilder,只能使用String。 – user2377195