这是列表活动。
清单活动:
public class ListDataActivity extends ListActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_listview);
url = "http://xxx.xx.x.xxx/index.php";
Bundle c = getIntent().getExtras();
blo = c.getString("blood");
new ProgressTask(ListDataActivity.this).execute();
}
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
super.onBackPressed();
}
class ProgressTask extends AsyncTask<String, Void, Boolean> {
ArrayList<HashMap<String, String>> jsonlist = new ArrayList<HashMap<String, String>>();
ConnectivityManager conMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
{
if (conMgr.getActiveNetworkInfo() != null
&& conMgr.getActiveNetworkInfo().isAvailable()
&& conMgr.getActiveNetworkInfo().isConnected()) {
} else {
Toast.makeText(getApplicationContext(),
"INTERNET CONNECTION NOT PRESENT", Toast.LENGTH_SHORT)
.show();
startActivity(new Intent(ListDataActivity.this,
MainActivity.class));
}
}
public ProgressTask(ListActivity activity) {
context = activity;
}
private Context context;
protected void onPreExecute() {
}
@Override
protected void onPostExecute(final Boolean success) {
ListAdapter adapter = new SimpleAdapter(context, jsonlist,
R.layout.row_listitem, new String[] { name, Category },
new int[] { R.id.vehicleType, R.id.vehicleColor }) {
@Override
public View getView(int position, View convertView,
ViewGroup parent) {
if (convertView == null) {
// This a new view we inflate the new layout
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.row_listitem,
null);
}
// TODO Auto-generated method stub
if (position % 2 == 1) {
convertView.setBackgroundColor(Color.rgb(120, 151, 66));
} else {
convertView.setBackgroundColor(Color.rgb(86, 107, 129));
}
return super.getView(position, convertView, parent);
}
};
setListAdapter(adapter);
lv = getListView();
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
}
});
}
protected Boolean doInBackground(final String... args) {
url = url + "?blo_name=" + blo;
Log.d("", url);
baseAdapter jParser = new baseAdapter();
JSONArray json = jParser.getJSONFromUrl(url);
if (json != null) {
for (int i = 0; i < json.length(); i++) {
try {
JSONObject c = json.getJSONObject(i);
String vtype = c.getString(name);
String vfuel = c.getString(Category);
HashMap<String, String> map = new HashMap<String, String>();
// Add child node to HashMap key & value
map.put(name, vtype);
map.put(Category, vfuel);
jsonlist.add(map);
} catch (JSONException e) {
e.printStackTrace();
}
}
}
return null;
}
基本适配器类:
public class baseAdapter {
static InputStream iStream = null;
static JSONArray jarray = null;
static String json = "";
public baseAdapter() {
}
public JSONArray getJSONFromUrl(String url) {
StringBuilder builder = new StringBuilder();
HttpClient client = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(url);
try {
HttpResponse response = client.execute(httpGet);
StatusLine statusLine = response.getStatusLine();
int statusCode = statusLine.getStatusCode();
if (statusCode == 200) {
HttpEntity entity = response.getEntity();
InputStream content = entity.getContent();
BufferedReader reader = new BufferedReader(
new InputStreamReader(content));
String line;
while ((line = reader.readLine()) != null) {
builder.append(line);
}
} else {
Log.e("==>", "Failed ");
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// Parse String to JSON object
try {
jarray = new JSONArray(builder.toString());
} catch (JSONException e) {
Log.e("JSON Parser", "Error parsing data " + e.toString());
}
// return JSON Object
return jarray;
}
的PHP:
if(isset($_POST['blo_name'])){
$str = $_POST['blo_name'];
$sql = "SELECT * FROM blood_group where Category IN ($str)";
$result = mysql_query($sql);
while($row=mysql_fetch_array($result))
$output[]=$row;
print(json_encode($output));
mysql_close();
}
我的问题是,我尝试解析bol
字符串,它的值就像bol="'B-','O-'";
我解析这种类型的值时一样,它没有显示结果,并给出了logcat。
日志猫:
Error parsing data org.json.JSONException: Value <br of type java.lang.String cannot be converted to JSONArray
当我解析简单的值"B,O"
并且更改数据库时,它给我很好的结果。但是,我需要解析该值。请帮帮我。谢谢
如您所说,您无法解析类似于“’B-‘,’O-‘”的json字符串,但是您可以成功解析诸如“ B,O”的字符串。
这是因为单引号(’)被认为是json的特殊字符,您可能希望在解析字符串之前像字符串中的'一样对其进行转义。
} 另一个UserFunction类,其中服务调用:公共类UserFunction{
问题内容: 解析JSON时出现错误。解析数据org.json.JSONException时出错:输入的第0个字符。 错误日志: 这是在UserFunction类中调用函数的代码: UserFunction类中的函数 Java解析器类: 这是我的index.php API index.php调用此orderdetails函数 新的JSON响应。尽管我必须要生产的产品不能显示阵列。为什么JSON标签显
问题内容: 我正在开发一个测试Android应用程序,该应用程序必须显示mysql数据库中的一些数据。这是我的日志: 这里是JSONParser.java类 在这里,我用来显示所选数据的类: 这里的PHP文件: 另外,这里主要活动: 我在互联网上阅读了有关此错误的各种线索,但它甚至是由差异问题引起的,我没有找到与我的情况类似的情况或解决了我问题的解决方案。 问题答案: 看起来您的PHP文件正在返回
我试图实现一个简单的android应用程序,在这个应用程序中,我试图通过php站点检索数据库值,但是下面的代码在解析json数据时产生错误。 我的php文件编码json如下 Android类如下 最后是logcat输出 如何获得表的所需值 请帮忙。
问题内容: 我从Met Office Datapoint API读取JSON时遇到NSJSONSerialization问题。 我收到以下错误 我已经检查并认为这是根据字符位置的冒犯行 根据我尝试过的多个验证器,JSON本身似乎是有效的,并且我希望它也来自大型组织(如Met Office)。 NSJSONSerialization是否不能与’ó’之类的字符配合使用? 如果不是,我该如何更改编码类型
()中的ValueError回溯(最近一次调用)---- ~\Anaconda3\lib\site packages\sklearn\preprocessing\data.py in fit_transform(self,X,y)2017”““2018年返回所选的fit_transform(X,self.\u fit_transform- ~\Anaconda3\lib\site-包\skLear