0

私はJSONを初めて使用するので、無知を許してください。次のような JSON オブジェクトを取得する必要があります。

jsonString =
{
    "Key": {"AppID":"19","Username":"sompoRoot","Password":"11223344"},
    "deviceList": ["43ab48a0eb9f950d9c2498f8c2cfa1e5b8a62687479cfad849bbc455b88e67b6",
                   "43ab48a0eb9f950d9c2498f8c2cfa1e5b8a62687479cfad849bbc455b88e67b6"],
    "aps": {"alert":"merhaba dunya","sound":"default","badge":"10",
    "dictionaryArray":["a","b"],
    "production":"false"}   
}

データベースから AppID、UserName、および Password を取得します。deviceList は次のようなものです:43ab48a0eb9f950d9c2498f8c2cfa1e5b8a62687479cfad849bbc455b88e67b6, 43ab48a0eb9f950d9c2498f8c2cfa1e5b8a62687479cfad849bbc455b88e67b6 入力辞書とテキスト生成からバッジ アラートが生成されます。これらのパラメーターを文字列に変換します。インターネットから検索しますが、もっと複雑だと思います。どうすればその JSON を取得できますか。ありがとうございます。

4

4 に答える 4

2

コメントで、各フィールドに個別の文字列があると述べました。class次の方法で、必要なすべてのフィールドを含む を作成することをお勧めします (aps別のエンティティのように見えるため、別のクラスを作成します)。

public class MyClass {
    private String key;
    private List<String> deviceList;
    private Aps aps;
}

public class Aps {
    private String alert;
    private String sound;
    private long badge;
    private List<String> dictionaryArray;
    private boolean production;
}

Java オブジェクトを JSON に変換するのに役立つライブラリがいくつかあり、そのうちの 1 つがJackson の ObjectMapper クラスです。ライブラリは Web サイトからダウンロードできます。プロジェクトで使用している場合は、 mvnrepository.comMavenへの依存関係を見つけることができます。

の使用ObjectMapper:

ObjectMapper objectMapper = new ObjectMapper();
MyClass myClass = new MyClass();
// .. populate the fields
String jsonString = objectMapper.writeValueAsString(myClass);

try-catchそれをブロックで囲む必要があります。それだけです: jsonStringJSON 文字列に変換されたフィールドを保持するようになりました。


編集: Jackson の代わりに、ほぼ同じように機能するGoogle GSONを使用できます。

于 2013-09-06T11:44:23.293 に答える
1

Java 用の JSON ライブラリ (GSON、Jettison など) を使用できます。その後、Map オブジェクト (ネストされた構造) にデータを追加し、ライブラリのユーティリティ メソッドを使用して JSON に変換します。

Jettison を使用した例を探す

   JSONObject json = new JSONObject();

   JSONObject jsonKey = new JSONObject();
   jsonKey.put("AppID", 19);
   jsonKey.put("Username", "usrname");
   jsonKey.put("Password", "passwd");


   String[] deviceList = {"value1", "value2"};

   json.put("key", jsonKey);
   json.put("deviceList", deviceList);

   String finalJson = json.toString();
于 2013-09-06T11:33:51.397 に答える
0

あなたはグーグルからgsonを試すことができます=)それはかなり簡単で速いと思います-> https://code.google.com/p/google-gson/

于 2013-09-06T11:34:17.647 に答える