Как разобрать строку JSON в LWUIT - PullRequest
2 голосов
/ 08 сентября 2011

Как разобрать объект JSON в LWUIT, приведите пример или ссылку, откуда я могу это прочитать. Предположим, у меня есть объекты, приведенные ниже. "{'guild': 'Crimson', 'region': 'us', 'realm': 'Caelestrasz', 'timestamp': 1311860040}"

Ответы [ 4 ]

6 голосов
/ 09 сентября 2011

Код примера Json: Этот код будет работать для json.

 package com.ndtv.parser;
import java.io.IOException;
import java.io.InputStream;
import java.util.Vector;

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

import com.ndtv.callback.jsonActivelistener;
import com.ndtv.datatype.StockActiveItem;

 import json.me.JSONArray;
 import json.me.JSONException;
 import json.me.JSONObject;

 public class StockActiveParser {
public Vector jsonObjVector = new Vector();
public JSONArray arrayObj = null;
public String name,LastPrice;
protected jsonActivelistener mjsonListener;

public static boolean ParserCanceled = false;
public void setjsonListener(jsonActivelistener listener) {
    mjsonListener = listener;
}

// Non-blocking.
public void parser(final String url) {
    Thread t = new Thread() {
        public void run() {
            // set up the network connection
            try {
                jsonParse(url);
            }
            catch (Exception e) {
                mjsonListener.parserExceptionListing(e);
            }
            mjsonListener.parseDidFinishListing();
        }
    };
    t.start();
}

protected void jsonParse(String url) {
    StringBuffer stringBuffer = new StringBuffer();
    InputStream is = null;
    HttpConnection hc = null;
    System.out.println(url);
    try {
        hc = (HttpConnection)Connector.open(url);
        is = hc.openInputStream();
        int ch;
        while ((ch = is.read()) != -1) {
            stringBuffer.append((char) ch);
        }
    }

    catch (SecurityException se) {
        System.out.println("security exception:"+se);
    }
    catch (NullPointerException npe) {
        System.out.println("null pointer excception:"+npe);
    }
    catch (IOException ioe) {
        System.out.println("io exception:"+ioe);
    }
    try{
        hc.close();
        is.close();
    }catch(Exception e) {
        System.out.println("Error in MostActivePareser Connection close:"+e);
        e.printStackTrace();
    }

    String jsonData = stringBuffer.toString();
    try {
        JSONObject js = new JSONObject(jsonData);
        JSONArray js2 = js.getJSONArray("values");
        System.out.println(js2.length());


        for (int i = 0; i < js2.length(); i++) {
            StockActiveItem item = new StockActiveItem();

            JSONObject jsObj = js2.getJSONObject(i);
            item.name = jsObj.getString("name");
            item.last_traded_price = jsObj.getString("last_traded_price");
            item.change = jsObj.getString("change");
            item.price_diff = jsObj.getString("price_diff");
            item.chart=jsObj.getString("chart");
            item.company_id=jsObj.getString("company_id");
            mjsonListener.itemParsedListing(item);
        }
    } catch (JSONException e1) {
        System.out.println("Json Data error:"+e1);
        e1.printStackTrace();
    }
    catch (NullPointerException e) {
        System.out.println("null error:"+e);
    }
}
 }


public class StockActiveItem 
{
public String name ="";
public String last_traded_price ="";
public String change="";
public String price_diff ="";
public String chart="";
public String company_id="";
public String year_high="";
public String year_low="";

}

Вы просто заменяете имя, например, гильдия заменяет имя. Если у вас возникнут сомнения, спросите меня.

5 голосов
/ 09 сентября 2011

Используйте LWUIT JSONParser и анализируйте строку формата JSON. Просто используйте для этого MIDP_IO.jar из последней версии LWUIT 1.5.

0 голосов
/ 24 сентября 2012

Вы можете использовать JSON JAR и импортировать его в свой проект.После этого создайте объект JSON, и вы можете использовать методы optString или getString этого объекта для получения значений.

0 голосов
/ 07 марта 2012

Мне удалось успешно использовать приведенный ниже пример кода, приведенный по ссылкам, в моем приложении.

http://jimmod.com/blog/2010/03/java-me-j2me-json-implementation-tutorialsample/ http://jimmod.com/blog/2011/09/java-me-j2me-json-implementation-for-array-object/

Кстати, последнюю версию библиотеки JSON ME можно найти здесь: https://github.com/upictec/org.json.me/

...