如何在LWUIT中解析JSON字符串

如何在LWUIT中解析JSON字符串,json,java-me,lwuit,Json,Java Me,Lwuit,如何在LWUIT中解析JSON对象,请给出一些示例或链接,我可以从中阅读这些内容。 “{'guild':'Crimson','region':'us','realm':'Caelestrasz','timestamp':1311860040}”使用并解析JSON格式字符串。只需使用最新LWUIT 1.5的MIDP_IO.jar即可 Json示例代码:此代码适用于Json package com.ndtv.parser; import java.io.IOException; import ja

如何在LWUIT中解析JSON对象,请给出一些示例或链接,我可以从中阅读这些内容。
“{'guild':'Crimson','region':'us','realm':'Caelestrasz','timestamp':1311860040}”

使用并解析JSON格式字符串。只需使用最新LWUIT 1.5的MIDP_IO.jar即可

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="";

}
package com.ndtv.parser;
导入java.io.IOException;
导入java.io.InputStream;
导入java.util.Vector;
导入javax.microedition.io.Connector;
导入javax.microedition.io.HttpConnection;
导入com.ndtv.callback.jsonActivelistener;
导入com.ndtv.datatype.StockActiveItem;
导入json.me.JSONArray;
导入json.me.JSONException;
导入json.me.JSONObject;
公共类StockActiveParser{
公共向量jsonObjVector=新向量();
public JSONArray arrayObj=null;
公共字符串名称,LastPrice;
受保护的jsonActivelistener mjsonListener;
公共静态布尔parserconceled=false;
public void setjsonListener(jsonActivelistener侦听器){
mjsonListener=监听器;
}
//非阻塞。
公共void解析器(最终字符串url){
线程t=新线程(){
公开募捐{
//设置网络连接
试一试{
jsonParse(url);
}
捕获(例外e){
mjsonListener.parserExceptionListing(e);
}
mjsonListener.parseDidFinishListing();
}
};
t、 start();
}
受保护的void jsonParse(字符串url){
StringBuffer StringBuffer=新的StringBuffer();
InputStream=null;
HttpConnection hc=null;
System.out.println(url);
试一试{
hc=(HttpConnection)连接器。打开(url);
is=hc.openInputStream();
int-ch;
而((ch=is.read())!=-1){
追加((char)ch);
}
}
捕获(安全异常se){
System.out.println(“安全异常:+se”);
}
捕获(NullPointerException npe){
System.out.println(“空指针异常:+npe”);
}
捕获(ioe异常ioe){
System.out.println(“io异常:+ioe”);
}
试一试{
hc.close();
is.close();
}捕获(例外e){
System.out.println(“MostActivePareser连接关闭时出错:”+e);
e、 printStackTrace();
}
String jsonData=stringBuffer.toString();
试一试{
JSONObject js=新的JSONObject(jsonData);
JSONArray js2=js.getJSONArray(“值”);
System.out.println(js2.length());
for(int i=0;i

您只需替换名称,例如,帮会替换名称。如果有任何疑问,请询问我。

我能够在我的应用程序中成功使用下面给定链接中提供的示例代码


顺便说一句,最新的JSON ME库可以在这里找到:

您可以使用JSON jar并将其导入到您的项目中。之后,创建一个JSON对象,您可以相应地使用该对象的optString或getString方法来获取值。

我正在尝试使用JSON.me,但找不到jar。我还试图从可用的源代码生成它,但我可能做错了什么,因为我无法让它工作:我试图使用json.me,但我找不到jar。我还试图从可用的源代码生成它,但我可能做错了什么,因为我无法让它工作:如果你仍然拥有它,你认为你可以共享它吗?