저는 Android에 익숙하지 않지만, 매우 열심히 노력하고있는 웹 스 크레이퍼와 잘 어울리는 앱을 발견했습니다. 데이터베이스와. 이것은 PHP 스크립트를 사용하여 MySQL 데이터베이스에서 값을 검색하여 안드로이드 장치에 표시하는 기본 응용 프로그램입니다. 여기 JSONException : java.lang.String 유형의 값을 JSONObject로 변환 할 수 없습니다.
는 PHP입니다 :<?php
try {
$conn = new PDO('mysql:host=localhost;dbname=beanbag', **********, *******);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$results=$conn->query('SELECT * FROM Recipes');
while ($results = $row->fetch(PDO::FETCH_ASSOC)){
$output[]=$row;
print(json_encode($output));
}
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
}
$conn = null;
?>
원래 코드에 사용 된 mysql_connect하지만 대신 PDO를 구현했습니다.
protected void onPostExecute(Void v) {
// ambil data dari Json database
try {
JSONArray Jarray = new JSONArray(result);
for(int i=0;i<Jarray.length();i++)
{
JSONObject Jasonobject = null;
//text_1 = (TextView)findViewById(R.id.txt1);
Jasonobject = Jarray.getJSONObject(i);
//get an output on the screen
//String id = Jasonobject.getString("id");
String name = Jasonobject.getString("Title");
String db_detail="";
if(et.getText().toString().equalsIgnoreCase(name)) {
db_detail = Jasonobject.getString("ingredient");
text.setText(db_detail);
break;
}
//text_1.append(id+"\t\t"+name+"\t\t"+password+"\t\t"+"\n");
}
this.progressDialog.dismiss();
} catch (Exception e) {
// TODO: handle exception
Log.e("log_tag", "Error parsing data "+e.toString());
}
}
로그 캣은 말한다 : 여기
는 자바입니다오류 분석 데이터 org.json.JSONException : java.lang.String 타입의 값 BR은 JSONArray
로 변환 할 수 없습니다
this stackoverflow question의 왼쪽 중괄호와 오른쪽 중괄호를 사용해 보았습니다.하지만 그럴 것 같지 않습니다.
은 JSON을 보여이 사용하는 다음 코드를 수행 할 수 있습니다 응답. – Riser
"제목"또는 "재료"는 json 객체 일 수 있으며 문자열로 가져옵니다. Jasonobject.getJSONObject ("Title") 또는 Jasonobject.getJSONObject ("ingredient")로 변경하십시오. – Jigar
@Camil Staps PDC가 팁을 주셔서 감사드립니다. – Claphands