大家好我试图将JSON值解码到我的Android应用程序中,但我不确定我的代码中出错了什么...
这是我的PHP文件:
<?php
...
echo json_encode($mostrar_player);
...
?>
这将返回给我这样的内容: [&#34; 1&#34;,&#34;管理员&#34;,&#34; 123&#34;,&#34; Adm&#34; &#34;消息&#34;&#34; 0&#34;]
在我的Android应用程序中我需要将该值放入数组中,我可以选择值separeted,但是如何?
这是我的Android代码:
EditText campoLogin = (EditText)findViewById(R.id.campo_de_login);
EditText campoSenha = (EditText)findViewById(R.id.campo_de_senha);
toast("Conectando...");
Conectar Conn = new Conectar("http://website/chat/login.php?login=" + campoLogin.getText() + "&senha=" + campoSenha.getText() );
Log.i("-RESPOSTA-",Conn.response);
// HERE IN Conn.response I have my response ["1","Admin","Admin","Admin","affs","0"]
String json_str = Conn.response;
JSONObject json = new JSONObject(json_str);
JSONArray jArray = json.getJSONArray("msg");
//Log.i("JSON",json_data.getString("msg"));
答案 0 :(得分:0)
尝试
<?php echo json_encode($mostra_player, JSON_FORCE_OBJECT); ?>
强迫成为一个对象。
然后你可以使用
在java / android中访问它JSONObject obj = (JSONObject) new JSONTokener(json_string_output).nextValue();
String yourdata= obj.getString("yourdata");
如果你想要一个阵列试试
<?php echo json_encode(array("data" => $mostra_player)); ?>
JSONObject json = new JSONObject(responsedata);
JSONArray jArray = json.getJSONArray("posts");
for (int i = 0; i < jArray.length(); i++) {
JSONObject e = jArray.getJSONObject(i);
JSONObject jObject = new JSONObject(e.getString("data"));
Log.d("yourdata", jObject.getString("yourdata"));
Log.d("moredata", jObject.getString("moredata"));
}
答案 1 :(得分:0)
您可以通过几种方式实现这一目标。
我个人喜欢在Android中使用内置的JSON解析器
JSONObject jObject = new JSONObject(result);
您还可以使用Google的json解析库 https://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/com/google/gson/Gson.html
另请参阅此链接以获取有关如何实际解析JSON以及获取可在程序中使用的字符串的详细信息。 How to parse JSON in Android
答案 2 :(得分:0)
我会尽力回答: -
根据你的代码,你有这个字符串["1","Admin","123","Adm","messages","0"]
,这显然是一个jsonarray,但你在android中解析为jsonobject。
因为@Boban说你不能在主线程上运行网络操作所以请避免使用dat。
现在按照我在1中提到的回答你将如何做: -
JSONArray jArray=new JSONArray(json_str)
String id=jArray.getString(0);
String admin=jArray.getString(1);
.
.
.
希望它有所帮助......如果我错了,请纠正我:)
THX