2012-03-03 45 views
5

tôi đang phát triển ứng dụng trong phiên bản blackberry 5.0 và tôi đã nhập tất cả thư viện yêu cầu json trong 5.0.Phân tích cú pháp Json trong Blackberry 5.0

tôi đã có thư viện tải về từ url này http://supportforums.blackberry.com/t5/Java-Development/JSON-library/td-p/573687

thậm chí tôi không nhận được phản ứng, những gì tôi đã bỏ lỡ trong mã này xin vui lòng giúp tôi.

Dưới đây là mã của tôi Để phân tích cú pháp json.

package mypackage; 

import java.io.ByteArrayOutputStream; 
import java.io.IOException; 
import java.io.InputStream; 

import javax.microedition.io.Connector; 
import javax.microedition.io.HttpConnection; 

import JSON_ME_Library.src.org.json.me.JSONArray; 
import JSON_ME_Library.src.org.json.me.JSONException; 
import JSON_ME_Library.src.org.json.me.JSONObject; 

import net.rim.device.api.ui.UiApplication; 
import net.rim.device.api.ui.component.ButtonField; 
import net.rim.device.api.ui.component.Dialog; 
import net.rim.device.api.ui.component.LabelField; 
import net.rim.device.api.ui.container.MainScreen; 


public final class MyScreen extends MainScreen 
{ 

    String url="http://www.appymail.com/iphone-messenger/456842/"; 

    public MyScreen() 
    {     
     setTitle("Json Parsing Sample"); 

     String aa=jsonresponse(url); 

     if(aa.equalsIgnoreCase("")) 
     { 
      add(new LabelField("NO res")); 
     } 
     else 
     { 
      parseJSONResponceInBB(aa); 

     } 


    } 



    void parseJSONResponceInBB(String jsonInStrFormat) 
    { 


     try { 
      JSONObject json = new JSONObject(jsonInStrFormat); 
      JSONArray jArray= json.getJSONArray("messages"); 

      //JSONArray arr=jArray.getJSONArray(0); 

      for(int i=0;i<jArray.length();i++) 
      { 
       JSONObject j = jArray.getJSONObject(i); 
       String from = j.getString("id");   
       add(new LabelField("id=="+from)); 

       String to =j.getString("title"); 
       add(new LabelField("title=="+to));   

       String message=j.getString("body");     
       add(new LabelField("Body=="+message)); 

      } 
     } catch (JSONException e) 
     {   
      e.printStackTrace(); 
     }  



    } 

    public static String jsonresponse (String url) 
    { 
     String response = null; 
     HttpConnection httpConnection = null; 
     InputStream inStream = null; 
     int code; 
     StringBuffer stringBuffer = new StringBuffer(); 

     try { 

      httpConnection = (HttpConnection) Connector.open(url, Connector.READ); 
      httpConnection.setRequestMethod(HttpConnection.GET); 

      code = httpConnection.getResponseCode(); 

      if(code == HttpConnection.HTTP_OK) 
      { 
       inStream=httpConnection.openInputStream(); 
       int c; 


       while((c=inStream.read())!=-1) 
       { 
        stringBuffer.append((char)c); 
       } 
       response=stringBuffer.toString(); 
       System.out.println("Response Getting from Server is ================" + response); 



      } 
     else 
      { 
       UiApplication.getUiApplication().invokeLater(new Runnable() 
       { 

        public void run() 
        {  
         Dialog.inform("Connection error"); 
        } 
       }); 
      } 


     } 
     catch (Exception e) 
     { 

      System.out.println("caught exception in jsonResponse method"+e.getMessage()); 

     } 
     finally 
     { 

     //  if (outputStream != null) 
     //  { 
     //   outputStream.close(); 
     //  } 
       if (inStream != null) 
       { 
        try { 
         inStream.close(); 
        } catch (IOException e) { 
         // TODO Auto-generated catch block 
         e.printStackTrace(); 
        } 
       } 
       if (httpConnection != null) 
       { 
        try { 
         httpConnection.close(); 
        } catch (IOException e) { 
         // TODO Auto-generated catch block 
         e.printStackTrace(); 
        } 
       } 
     } 

     return response; 
    } 


} 
+0

cảm ơn! Mã của bạn đã giúp tôi tìm ra vấn đề của tôi :) – yanike

Trả lời

1

Hello dear bạn cần phải sử dụng phần mở rộng url cho blackberry

vì vậy hãy cố gắng thay đổi dòng này

String aa=jsonresponse(url); 

như

String aa=jsonresponse(url+";interface=wifi"); 

Sau khi tải dữ liệu hoàn thành công từ url sau đó một lần kiểm tra String aa nhận được bất kỳ giá trị hay không? nếu nó có được dữ liệu sau đó làm theo

thử này nếu nó làm việc tốt sau đó đi qua liên kết này sau

Guide for URL extensions

+0

cho tôi biết là nó có hiệu quả cho bạn hay không? –

1

Nhập Url trong

 String url="Your url"; 
    String request=jsonresponse(url+";interface=wifi"); 
    String response = parseJSONResponceInBB(request); 
    if(response .equalsIgnoreCase("")) 
    { 
     add(new LabelField("NO res")); 
    } 
    else 
    { 
     add(new LabelField(response)); 
    } 
+0

Thanx cho rply .. – Hasmukh

Các vấn đề liên quan