2

JSONObject以下のコードを使用して文字列をオブジェクトに変換しようとしていますが、取得しています

Exception in thread "main" java.lang.ClassCastException: 
org.json.simple.JSONObject cannot be cast to net.sf.json.JSONObject .

ソース:

import net.sf.json.JSONObject;
import org.json.simple.parser.JSONParser;
    public static void run(JSONObject jsonObject) {
        System.out.println("in run--");

    }

    public static void main(String[] args) throws Exception {
        System.out.println("here");
        String json = "{\"task\": \"com.ge.dbt.workers.surveytoexcel.worker.SurveyWorker\",\"prod_id\": 12345,\"survey_id\": 5666,\"person_id\": 18576567,\"req_date\": \"12\12\2012\"}";
        JSONObject jsonObj;
        JSONParser parser = new JSONParser();

        Object obj = parser.parse(json);

        jsonObj = (JSONObject) obj;

        run(jsonObj);
    }

ここで何が問題なのですか?

4

2 に答える 2

2

JSONObject間違ったパッケージからインポートしました。この行を変更します。

import net.sf.json.JSONObject;

これに:

import org.json.simple.JSONObject;
于 2012-10-04T12:54:34.220 に答える
0

次のソリューションを実装すると、パーサーについて気にする必要さえありません...

ここでの問題は、uがタイプのオブジェクトをにキャストしようとしていることorg.json.simple.JSONObjectですnet.sf.json.JSONObject。あなたはパッケージを試してみたいかもしれませんorg.codehaus.jettison.json.JSONObject。それは必要なすべてのことをするのに十分です。

簡単な例

まず、文字列を準備します。

String jStr = "{\"name\":\"Fred\",\"Age\":27}";

ここで、オブジェクトを解析するにはString、Uは文字列をJSONObject();コンストラクターメソッドに渡すだけです。

JSONObject jObj = new JSONObject(jStr);

それはそれを行う必要があり、出来上がり!JSONObjectがあります。今、あなたはあなたが好きなようにそれで遊ぶことができます。

どれほどシンプルではないですか?

コードの変更バージョンは次のようになります

import net.sf.json.JSONObject;

import org.codehaus.jettison.json.JSONObject;
public static void run(JSONObject jsonObject) {
    System.out.println("in run-- "+jsonObject.getInt("person_id"));
}

public static void main(String[] args) throws Exception {
    System.out.println("here");
    String json = "{\"task\": \"com.ge.dbt.workers.surveytoexcel.worker.SurveyWorker\",\"prod_id\": 12345,\"survey_id\": 5666,\"person_id\": 18576567,\"req_date\": \"12\12\2012\"}";
    JSONObject jsonObj = new JSONObject(json);
    run(jsonObj);
}

JSONを使用すると、SssOoooooooシンプルです

于 2012-10-04T13:06:23.123 に答える