我对这个问题很感兴趣(大约需要6个小时才能完成这项工作)而且我知道我在这里错过了一些非常简单的东西.
我试图用一个数据解析一个JSON响应,但我的解析代码没有把它拿起来.
这是整个JSON响应......
{ "ID": "4480"}
"4480"是潜在的字母数字数据响应,因此它也可能类似于"A427".
这是我用来尝试解析单个响应的代码.问题是userID为null - 它没有在JSON响应中获取4480.有人可以指出我搞砸了吗?非常感谢我提供任何帮助!
InputStream is = null;
//http post
try{
String postQuery = "my api post goes here";
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(postQuery);
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}catch(Exception e){
Log.e("log_tag", "Error in http connection "+e.toString());
}
//convert response to string
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != …Run Code Online (Sandbox Code Playgroud) 我非常接近让这个项目发挥作用,但我坚持一件让我发疯的事情,我在研究中找不到任何有用的东西.
我需要做的是每次for循环通过记录集时声明一个新变量,但我需要在变量名中使用索引值(i).
我需要帮助的是 Bottles o[i] = new Bottles();
我需要在每次for循环再次通过时定义一个新变量,例如,我的变量最终应该是o1,o2,o3等.我现在在[i]上遇到语法错误,我可以似乎没有找到如何做到这一点.
对我在这里缺少什么的想法?
private void getBottles() {
try {
m_bottles = new ArrayList<Bottles>();
for (int i = 0; i < bottleNamesMap.size(); i++) {
Bottles o[i] = new Bottles();
o[i].setbottleID(bottleIntMap.get("bottleID" + i));
o[i].setname_abbr(bottleNamesMap.get("name" + i));
o[i].setorigin(bottleNamesMap.get("origin" + i));
o[i].setbottlePicture(bottleNamesMap.get("bottlePicture" + i));
o[i].setprice_reported(bottleNamesMap.get("price" + i));
o[i].setdistillery(bottleNamesMap.get("distillery" + i));
o[i].setagg_score(bottleIntMap.get("aggscore" + i));
m_bottles.add(o[i]);
Thread.sleep(2000);
Log.i("ARRAY", "" + m_bottles.size());
}
} catch (Exception e) {
Log.e("BACKGROUND_PROC", e.getMessage());
}
runOnUiThread(returnRes);
}
Run Code Online (Sandbox Code Playgroud)