gpt4 book ai didi

java - 将字符串转换为 json 对象会出现错误

转载 作者:行者123 更新时间:2023-12-01 09:29:52 25 4
gpt4 key购买 nike

我必须将 json 数组发送到 Web 服务器。我已经从数组列表创建了 json 数组。我有一个帮助器类,它将 json 对象发送到服务器。

所以我想将json数组转换为json对象。

我尝试这样做:

异步任务:

public class SendMultipleInvitesAsyncTask extends AsyncTask<String, Void, JSONObject> {

private Context context;
JSONArray array = new JSONArray();

public SendMultipleInvitesAsyncTask(Context context)
{

this.context = context;

}

@Override
protected JSONObject doInBackground(String... params) {
try {
String api = context.getResources().getString(R.string.server_url) + "contactsapi/sendMultipleInvite.php";

JSONObject obj = new JSONObject(params[0]);

ServerRequest request = new ServerRequest(api,obj);
return request.sendRequest();

} catch(JSONException je) {
return Excpetion2JSON.getJSON(je);
}
}

Activity :

公共(public)类 SendMultipleInvites 扩展 AppCompatActivity {

private ArrayList<Invitation> invitationArrayList;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_send_multiple_invites);

invitationArrayList = new ArrayList<>();

Invitation invitation = new Invitation("3","17/02/2016","55165122","1","user10");

invitationArrayList.add(invitation);

invitation = new Invitation("3","17/02/2016","282751221","1","user10");

invitationArrayList.add(invitation);

// JSONArray jsArray = new JSONArray(invitationArrayList);


Gson gson=new Gson();
String toServer=gson.toJson(invitationArrayList);



new SendMultipleInvitesAsyncTask(SendMultipleInvites.this).execute(toServer);

但这给了我一个错误,json对象无法转换为json数组。

我想像这样发送 json 数组的输入:

{
"invitations": [
{

"sender_id" : 3,
"date" : "12/08/2016",
"invitee_no" : "196756456",
"status" : "1",
"user_name" : "user10"

},
{

"sender_id" : 3,
"date" : "12/08/2016",
"invitee_no" : "13633469",
"status" : "1",
"user_name" : "user9"

}
]

}

我该怎么做?如何通过异步任务传递它。或者这里出了什么问题?请帮忙谢谢..

最佳答案

invitationArrayList 是您的 ArrayList,因此请获取 JSON 数组。如果您想将此数组包装在 JSON 对象中,您也必须在 java 中这样做。

例如:

String toServer = gson.toJson(
Collections.singletonMap("invitations", invitationArrayList)
);

(假设 gson.toJson 按预期工作。我不是 gson 专家,因为我主要使用 jackson ...)

Collections.singletonMap的JavaDoc:https://docs.oracle.com/javase/7/docs/api/java/util/Collections.html#singletonMap(K,%20V)

关于java - 将字符串转换为 json 对象会出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39524366/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com