gpt4 book ai didi

java - 如何修复Android Studio中的 ‘null json data ’错误

转载 作者:行者123 更新时间:2023-12-02 05:49:39 24 4
gpt4 key购买 nike

我正在尝试将字符串数组列表转换为 JSONArray,然后将其发送到远程服务器

我希望它以 JSONarray 格式发送我的数组这是空对象引用上的错误 “'java.lang.String org.json.JSONObject.getString(java.lang.String)'”

我的数组有 2 个元素,当我尝试在 log.d 中获取它们时: list ja [null,null]

这是我正在使用的代码

public void sendCommande (){
bt_newCommande.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//----------------------------------
StringRequest stringRequest = new StringRequest(Request.Method.POST,url_ProdCommande, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d(TAG,"element envoie !");
//listProRest.clear();
//adapter.notifyDataSetChanged();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
})
{
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String,String> params = new HashMap<String,String>();
JSONArray ja = new JSONArray(db.afficherTousProduit());
Log.d(TAG,"list ja "+ja.toString());
for(int i =0;i<ja.length();i++){
JSONObject j = ja.optJSONObject(i);
/*
try {
params.put("idProduit",j.getString(db.afficherTousProduit().get(i).getIdProduct()));
params.put("qte",j.getString(String.valueOf(db.afficherTousProduit().get(i).getQtePro())));
params.put("heure",j.getString(db.afficherTousProduit().get(i).gethCollete()));
params.put("date",j.getString(db.afficherTousProduit().get(i).getDateCollete()));
} catch (JSONException e) {
e.printStackTrace();
}
*/
}
//params.put("id",arrayList.get(position).getIdProduct());
return params;
}
};
RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext());
requestQueue.add(stringRequest);
}
});
}

最佳答案

看起来有些问题

db.afficherTousProduit().get(i).getIdProduct()

我会设置一个断点并检查数据库是否返回您期望的结果。

从您的代码来看,您似乎多次执行与 JSON 之间的额外工作。我可能是错的,但我认为这可以像这样清理:

                @Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String,String> params = new HashMap<String,String>();
JSONArray ja = new JSONArray(db.afficherTousProduit());
Log.d(TAG,"list ja "+ja.toString());
// Begin iterating through the JSON Array
for (int i=0; i < arr.length(); i++) {
// Get current JSON Object at index i
JSONObject j = arr.getJSONObject(i)
try {
// Return the specified value associated with the String for the current object
params.put("key",j.getJsonString("key");
} catch (JSONException e) {
e.printStackTrace();
}
}
//params.put("id",arrayList.get(position).getIdProduct());
return params;
}

它不应该需要多个数据库访问来获取 json 数组,然后迭代每个对象并从中获取您需要的内容就是一件简单的事情。查看Java docs了解更多信息。

关于java - 如何修复Android Studio中的 ‘null json data ’错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56061480/

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