Hasmukh
Hasmukh

Reputation: 4670

Json parsing in Blackberry 5.0

i am developing app in blackberry version 5.0, and i had import all library which require for json in 5.0.

i had download library from this url http://supportforums.blackberry.com/t5/Java-Development/JSON-library/td-p/573687

even i not getting response, what i had miss in this code please help me.

Below is my code For json parsing.

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


}

Upvotes: 5

Views: 2121

Answers (2)

V.J.
V.J.

Reputation: 9580

Enter Url in

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

Upvotes: 1

Govindarao Kondala
Govindarao Kondala

Reputation: 2862

Hello dear you need to use url extension for blackberry

so please try to change this line

  String aa=jsonresponse(url); 

as

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

After successfully completed download data from url then once check String aa getting any value or not? if it get data then follow

try this if it is working fine then go through this following link

Guide for URL extensions

Upvotes: 1

Related Questions