61

いくつかのオブジェクトを JSON にシリアル化し、WebService に送信する必要があります。org.json ライブラリを使用してそれを行うにはどうすればよいですか? または、別のものを使用する必要がありますか?シリアル化する必要があるクラスは次のとおりです。

public class PontosUsuario {

    public int idUsuario;
    public String nomeUsuario;
    public String CPF;
    public String email;
    public String sigla;
    public String senha;
    public String instituicao;

    public ArrayList<Ponto> listaDePontos;


    public PontosUsuario()
    {
        //criando a lista
        listaDePontos = new ArrayList<Ponto>();
    }

}

クラスの変数とコンストラクターのみを配置しましたが、ゲッターとセッターもあります。だから誰かが助けてくれるならお願いします

4

7 に答える 7

92

注釈なしでそれを行う簡単な方法は、Gson ライブラリを使用することです

そのような単純な:

Gson gson = new Gson();
String json = gson.toJson(listaDePontos);
于 2013-05-17T11:11:04.490 に答える
9

POJO を Json 化するために私が見つけた最も迅速で簡単な方法は、Gson ライブラリを使用することです。 このブログ投稿では、ライブラリの使用に関する概要を簡単に説明しています。

于 2013-05-17T11:12:18.810 に答える
5

あなたはhttpリクエストを行います

HttpResponse response = httpclient.execute(httpget);           
HttpEntity entity = response.getEntity();

inputStream = entity.getContent();

BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"), 8);
            StringBuilder sb = new StringBuilder();

あなたはバッファを読みます

String line = null;
while ((line = reader.readLine()) != null)
{
sb.append(line + "\n");
}
Log.d("Result", sb.toString());
result = sb.toString();

JSONObjectを作成し、結果の文字列をコンストラクターに渡します。

JSONObject json = new JSONObject(result);

json の結果を目的の変数に解析します。

String usuario= json.getString("usuario");
int idperon = json.getInt("idperson");
String nombre = json.getString("nombre");

インポートすることを忘れないでください:

import org.json.JSONObject;
于 2013-05-17T11:40:16.530 に答える
3

GSON は使いやすく、メモリ フットプリントが比較的小さいです。フットプリントをさらに小さくしたい場合は、次のものを入手できます。

https://github.com/ko5tik/jsonserializer

これは、POJO のためだけに GSON ライブラリを削除した小さなラッパーです。

于 2013-05-17T11:40:17.563 に答える
1

Sean Leary による「リファレンス」Java 実装は、github にあります。必ず最新バージョンを用意してください - さまざまなライブラリが、2009 年からバグのある古いバージョンのバージョンを取り込みます。

Java EE 7 には JSON API が含まれています。 Javadocjavax.jsonを参照してください。私が知る限り、任意のオブジェクトを JSON にマーシャリングする簡単な方法はありません。 aまたは.JsonObjectJsonArray

import javax.json.*;

JsonObject value = Json.createObjectBuilder()
 .add("firstName", "John")
 .add("lastName", "Smith")
 .add("age", 25)
 .add("address", Json.createObjectBuilder()
     .add("streetAddress", "21 2nd Street")
     .add("city", "New York")
     .add("state", "NY")
     .add("postalCode", "10021"))
 .add("phoneNumber", Json.createArrayBuilder()
     .add(Json.createObjectBuilder()
         .add("type", "home")
         .add("number", "212 555-1234"))
     .add(Json.createObjectBuilder()
         .add("type", "fax")
         .add("number", "646 555-4567")))
 .build();

JsonWriter jsonWriter = Json.createWriter(...);
jsonWriter.writeObject(value);
jsonWriter.close();

しかし、GSON などの他のライブラリには、これらのインターフェイスを実装するオブジェクトを作成するためのアダプターがあると思います。

于 2016-11-05T03:00:37.050 に答える