我使用PHP将数据从服务器发送到我的Android应用程序。该代码运行在PHP中的任何错误,但我得到的错误在Android应用程序,我无法解析JSON。我引起了JSON和它托克到http://json.parser.online.fr/它表明我语法错误:在JSON意外标记位置0误差 这是我的PHP代码:无法解析JSON并获得JSON中的意外令牌
function selectAll($cnn)
{
$query="SELECT * FROM user";
$stmt=$cnn->prepare($query);
$stmt->execute();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$result[]=$row;
}
return $result;
}
echo(json_encode(array('result' => $arr)));
and This is my json data that generated with php
当然,这是我的Android代码:
public class ManageUser extends AppCompatActivity implements RecyclerItemClickListener.OnItemClickListener {
RecyclerView recyclerView;
ProgressBar progressBar;
List<user> listOfUser=new ArrayList<>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_manage_user);
progressBar=(ProgressBar)findViewById(R.id.UserProgress);
recyclerView=(RecyclerView)findViewById(R.id.recviewUser);
recyclerView.addOnItemTouchListener(new RecyclerItemClickListener(this,this));
SelectAllUserNetworkTask GetAllUser=new SelectAllUserNetworkTask(this);
GetAllUser.execute();
}
@Override
public void onItemClick(View childView, int position) {
Toast.makeText(this,"Clicked trigger",Toast.LENGTH_SHORT).show();
}
@Override
public void onItemLongPress(View childView, int position) {
Toast.makeText(this,"LongPress",Toast.LENGTH_SHORT).show();
}
public class SelectAllUserNetworkTask extends AsyncTask {
Context myContext;
List<user> productarray =new ArrayList<>();
private OkHttpClient client=new OkHttpClient();
public String Result;
public SelectAllUserNetworkTask(Context context)
{
this.myContext=context;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
progressBar.setVisibility(View.VISIBLE);
}
@Override
protected Object doInBackground(Object[] params) {
try {
RequestBody requestBody;
requestBody = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("action","select")
.build();
Request request = new Request.Builder()
.url(Tags.UserAddress)
.post(requestBody)
.build();
Response response = client.newCall(request).execute();
Result=response.body().string().toString();
String str=Result.substring(Result.indexOf("{"), Result.lastIndexOf("}"));
JSONObject jsonObject=new JSONObject(str);
JSONArray jsonArray = jsonObject.getJSONArray("result");
for (int i=0;i<jsonArray.length();i++) {
JSONObject jobject = jsonArray.getJSONObject(i);
user myUser =new user();
myUser.setUsId(jobject.getInt("id"));
myUser.setName(jobject.getString("name"));
myUser.setLastName(jobject.getString("lastname"));
myUser.setEmail(jobject.getString("email"));
myUser.setPassword(jobject.getString("password"));
myUser.setImage(jobject.getString("image"));
myUser.setGender(jobject.getString("gender"));
myUser.setBirthDay(jobject.getString("birthday"));
myUser.setFavFilm(jobject.getString("favFilm"));
myUser.setFavColor(jobject.getString("favColor"));
myUser.setAboutMe(jobject.getString("aboutme"));
myUser.setAdmin(jobject.getInt("admin"));
productarray.add(myUser);
}
/* Type typeList=new TypeToken<List<ModelProduct>>(){}.getType();
productarray=new Gson().fromJson(jsonObject.getString("result"),typeList);*/
listOfUser = productarray;
return productarray;
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Object o) {
super.onPostExecute(o);
progressBar.setVisibility(View.GONE);
recyclerView.setHasFixedSize(true);
LinearLayoutManager llm = new LinearLayoutManager(myContext);
llm.setOrientation(LinearLayoutManager.VERTICAL);
recyclerView.setLayoutManager(llm);
UserAdapter ca=new UserAdapter(listOfUser,myContext);
recyclerView.setAdapter(ca);
}
}
}
PHP代码是不相关的,你的Android代码解析JSON对象是什么? – player87