12

私はこのようなクラスを持っています:

public class Class1 {
    private String result;
    private String ip;
    private ArrayList<Class2> alarm;
}

アラームは次のようなクラスです。

public class Class2 {
    private String bla;
    private String bla1;
}

org.jsonを使用してClass1のインスタンスをJSONオブジェクトに変換する簡単な方法はありますか?

4

2 に答える 2

28

org.json.libのJSONObject(Object)コンストラクターを利用することがあなたが探しているものだと思います。ゲッターに基づいてJavaオブジェクトからJSONObjectを構築します。次に、JSONObject#toStringを使用して、実際のJsonを生成できます。

JSONObject jsonObject = new JSONObject(instanceOfClass1);
String myJson = jsonObject.toString();
于 2011-08-11T12:21:58.717 に答える
7

JSONObjectはその方法ですが、JavaDocがBeanのプロパティについて述べていることに従う必要があります。

Beanゲッターを使用してオブジェクトからJSONObjectを構築します。これは、オブジェクトのすべてのパブリックメソッドに反映されます。パラメーターがなく、名前が「get」または「is」で始まり、その後に大文字が続くメソッドごとに、メソッドが呼び出され、getterメソッドから返されたキーと値が新しいJSONObjectに入れられます。キーは、「get」または「is」プレフィックスを削除することによって形成されます。残りの2番目の文字が大文字でない場合、最初の文字は小文字に変換されます。たとえば、オブジェクトに「getName」という名前のメソッドがあり、object.getName()を呼び出した結果が「LarryFine」の場合、JSONObjectには「name」:「LarryFine」が含まれます。

ドキュメントに基づくと、gettingsとsetterを介してこれらのプロパティを公開しないため、この場合は失敗します。

于 2011-08-11T12:24:16.017 に答える