Le backend PHP implémente l'interaction JSON avec Android

小云云
Libérer: 2023-03-20 13:16:01
original
1906 Les gens l'ont consulté

Certains amis autour de moi ont dit que lorsqu'ils utilisaient le code de ce blog, ils signaleraient une erreur dans le code suivant, et il y avait une erreur indiquant que builder.toString() ne pouvait pas être converti en objet json.

	JSONObject jsonObject   = new JSONObject(builder.toString());
Copier après la connexion

<br/>Et je n'ai rien trouvé de mal quand je l'ai essayé moi-même. J'ai donc fait quelques vérifications sur le code du serveur php construit par mes amis, et j'ai finalement trouvé le problème . J'ai donc écrit ceci, dans l'espoir d'aider la majorité des étudiants qui sont tombés dans le même gouffre

Cela implique la fonction json_decode de php, c'est la raison pour laquelle mes amis ont fait des erreurs.

Écrivez maintenant le code que j'ai testé avec succès. Ce que j'ai envoyé au serveur php sur Android est un jsonObject, {"name": "lala"}, et le nom de l'entité correspondant. est " userJson ", qui est le code suivant

	JSONObject jo = new JSONObject();
Copier après la connexion
        jo.put("name", "test");
Copier après la connexion
 
params.add(new BasicNameValuePair("userJson",jo.toString() ));
Copier après la connexion

À l'heure actuelle, mon code côté serveur est

<?php  
    	$json_string = $_POST ["userJson"];  
	$user = json_decode($json_string,true);//这里的true加上就会将android发来的json字符串转化为关联数组
Copier après la connexion
  	$arr = array(  
        &#39;user_id&#39; => $user["name"]
        );  
	$str = json_encode($arr);  
    	echo($str);  
?>
Copier après la connexion

Pour le moment, il n'y aura aucune erreur qui ne puisse pas être convertie en JSONObject dans Android. Bien sûr, je peux également envoyer JSONArray au serveur côté serveur. C'est-à-dire [{"name":"lalala"},{}]

Dans ce cas, le code PHP ci-dessus ne peut pas être exécuté correctement jusqu'à la dernière phrase. besoin Le code est modifié en

<?php  
    	$json_string = $_POST ["userJson"];  
	$user = json_decode($json_string,true);//这里的true加上就会将android发来的json字符串转化为关联数组
  	$arr = array(  
        'user_id' => $user[0]["name"]
        );  
	$str = json_encode($arr);  
    	echo($str);  
?>
Copier après la connexion

Pourquoi est-il modifié comme ça ? La raison est en fait très simple. Lorsque nous ajoutons true à la fonction json_decode, le $json_string reçu sera converti en un tableau associatif. Par exemple, dans le premier exemple, jsonObject sera converti en

array(1){	["name"]=>String("test")	}
Copier après la connexion

, vous pourrez donc utiliser $user["name"] pour lire la chaîne "test", et dans l'exemple Le résultat de la deuxième transformation est

array(2){
	[0]=>array(1){			["name"]=>String("lala")			}	[1]=>array(0){}
	}
Copier après la connexion
<br/>
Copier après la connexion

À ce moment, une erreur se produira si vous utilisez $user["name"], et vous devez utiliser $user[0]["name "] peut lire la chaîne de "lala"

Recommandations associées :

Lorsque la valeur de retour du contrôleur La méthode est un type simple, comment communiquer avec json Interaction ?

Interaction JSON entre jQuery et PHP, comment éviter les tableaux bidimensionnels

Exemple d'interaction json simple entre php et html

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!