APIに送信する必要がある配列を作成しています。json の一部に連絡先情報があります。次のように送信する必要があります。
"Dealer" : {
"email" : "mjones@fake - domain.com" ,
"firstName" : "Martin" ,
"lastName" : "Jones" ,
"phone" : " 5555554321 " ,
"company" : "JonesCo Golf" ,
"street" : "554 Elm Street" ,
"city" : "Springfield" ,
"stateProvince" : "Illinois" ,
"postalCode" : "62701"
}
私のjson(Log.dを使用する場合)は次のように表示されます:
"Dealer":
[
{
"email":"email@email.com",
"firstName":"John",
"lastName":"Doe",
"phone":"0987654321",
"company":"test",
"street":"123 Street",
"city":"myCity",
"stateProvince":"Xy",
"postalCode":"12345"
}
]
9 つのオブジェクトを持つディーラーではなく、9 つのオブジェクトを含む 1 つのオブジェクトを持つディーラーとして返されます。もちろん、これを API に送信しても正しく解析されません。
共有設定からコンテンツを取得し、次のように JSONArray を作成して読み込みます。
JSONObject dealer = new JSONObject();
try {
dealer.put("email", salesPerson.get("emailAddress"));
dealer.put("firstName", salesPerson.get("firstName"));
dealer.put("lastName", salesPerson.get("lastName"));
dealer.put("phone", salesPerson.get("mobilePhone"));
dealer.put("street", salesPerson.get("mailingAddress1"));
dealer.put("street2", salesPerson.get("mailingAddress2"));
dealer.put("city", salesPerson.get("city"));
dealer.put("stateProvince", salesPerson.get("state"));
dealer.put("postalCode", salesPerson.get("postalCode"));
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Log.d("dealer", dealer.toString());
JSONArray dealerJSON = new JSONArray();
dealerJSON.put(dealer);
try {
emailDataObject.put("Dealer", dealerJSON);
} catch (JSONException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
API に送信するかなり広範な JSONArray があり、JSON はエラーなしで作成されています。JSONObject を JSONArray に追加すると、どこにでも角括弧が追加されているようです。
追加の角括弧がjsonに追加されないようにするにはどうすればよいですか?