工程中使用json,我已经导入可json.jar,像JSONArray、JSONObject等都可以使用,但比如Object obj = JSONValue.parse(s);JSONValue下便显示红色下划波浪线,难道JSONValue不再json.jar中?那JSONValue在哪呢?(莫非是自己实现?)

解决方案 »

  1.   

    用rar打开你的json.jar实现看看里面有没有JSONValue这个类,如果你用的是org.json的话,是没有这个类的。LZ需要这个类用来做什么?
      

  2.   

    我之前问的一个问题,是关于如何把json数组转为一个string类型的二维数组的,http://topic.csdn.net/u/20101010/04/f78f9525-057c-4efc-ae4c-22896c659d6e.html
    有位坛友给了段代码import java.util.Arrays;
    import java.util.Iterator;import net.sf.json.JSONArray;
    import net.sf.json.JSONObject;
    public class JsonToStringArrayTest {
    public static void main(String[] args){
        String s="[{\"type\":\"城际高速\",\"station\":\"北京南\",\"stationNO\":\"1\",\"days\":\"1\",\"arriveTime\":\"-\",\"startDriveTime\":\"08:45\",\"km\":\"0\"},{\"type\":\"城际高速\",\"station\":\"天津\",\"stationNO\":\"2\",\"days\":\"1\",\"arriveTime\":\"09:15\",\"startDriveTime\":\"-\",\"km\":\"120\"}]";
        Object obj = JSONValue.parse(s);
        JSONArray array=(JSONArray)obj;
        Iterator iter =  array.iterator();
        String[][] ary = new String[array.size()+1][7];
        String[] ss = {"type", "station","stationNO", "days", "arriveTime", "startDriveTime", "km"};
        int[] a = {1,2,3};
        ary[0] = ss;
        int i=1;
        while(iter.hasNext()){
            JSONObject jObj = (JSONObject)iter.next();
            ary[i] = new String[7];
            ary[i][0] = (String)jObj.get("type");
            ary[i][1] = (String)jObj.get("station");
            ary[i][2] = (String)jObj.get("stationNO");
            ary[i][3] = (String)jObj.get("days");
            ary[i][4] = (String)jObj.get("arriveTime");
            ary[i][5] = (String)jObj.get("startDriveTime");
            ary[i][6] = (String)jObj.get("km");
            i++;
        }
        System.out.println(Arrays.toString(ary[0]));
        System.out.println(Arrays.toString(ary[1]));
        System.out.println(Arrays.toString(ary[2]));
        }
    }我试了试,便发现了我这个帖子所问的问题了...郁闷中..
      

  3.   

    上面這段代碼關鍵是把字符串轉成JSONArray,如果你用的是org.json包的話,直接new就可以了。
     JSONArray array=(JSONArray)obj; -> JSONArray array=new JSONArray(s);或者想辦法去下net.sf.json這個包,這個包里或許有JSONValue這個類。