1

JSON に変換したいクラスがありますが、コンストラクターで許可されていません。クラスは CourseKeyInfo と呼ばれます。

public class CourseKeyInfo
{
    private String courseKey;
    private String institutionID;
    public CourseKeyInfo(String courseKey, String institutionId)
    {
        this.courseKey = courseKey;
        this.institutionID = institutionId;
    }
    public String getCourseKey()
    {
        return courseKey;
    }
    public void setCourseKey(String courseKey)
    {
        this.courseKey = courseKey;
    }
    public String getInstitutionID()
    {
        return institutionID;
    }
    public void setInstitutionID(String institutionID)
    {
        this.institutionID = institutionID;
    }
}

私はJSONObject body = new JSONObject(responseEntity);それをjsonに変換するために使用しましたが、「コンストラクタJSONObject(CourseKeyInfo)は未定義です」というエラーが表示されます。クラスをjsonに変換する方法はありますか?

4

3 に答える 3

4

コンストラクタJSONObject(Object)は実際に存在します。

CourseKeyInfo courseKeyInfo = new CourseKeyInfo("This Works!", "101");
JSONObject jsonObject = new JSONObject(courseKeyInfo);
于 2012-07-27T17:08:45.723 に答える
3

GSONを使用する場合は、次のように 1 行で実行できます。

CourseKeyInfo courseKeyInfo = new CourseKeyInfo("This Works!", "101");
String json = new Gson().toJson(courseKeyInfo);
System.out.println(json);

これが機能するために

  • GSON JARをダウンロード
  • プロジェクトのビルド パスに追加する
  • それで全部です

結果は次のとおりです。

{"courseKey":"This Works!","institutionID":"101"}
于 2012-07-31T06:14:33.570 に答える
1

http リクエストの場合、json 配列 + json Bean を使用する例を次に示します。

JSONArray jsonArray = new JSONArray();
    for (Credentials credentials : ((PropertiesManager) propertiesManager.get()).getJsonPropertiesManager().getAllCredentials()) {
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("credentialsName", credentials.getName());
        jsonArray.add(jsonObject);
    }

    req.setAttribute(JSON_RESULT_OBJ_ATTR, jsonArray.toString());
于 2012-07-27T17:05:19.030 に答える