php生成的json传给android gson无法解析
1.php json_encode 生成的json传输给android 用gson无法解析
2.$arr = array('token'=>'111','id'=>'1','contacts'=>array('name'=>'11','tel'=>'188'));
就是这种数组中包含数组 转换成json 发送给 android android用gson无法解析。
PHP多维关联数组用json_encode生成json串 android用gson不识别
用索引数组生成的则可以
回复内容:
1.php json_encode 生成的json传输给android 用gson无法解析
2.$arr = array('token'=>'111','id'=>'1','contacts'=>array('name'=>'11','tel'=>'188'));
就是这种数组中包含数组 转换成json 发送给 android android用gson无法解析。
PHP多维关联数组用json_encode生成json串 android用gson不识别
用索引数组生成的则可以
推荐在Android使用GsonFormat集成到AS中,可以很方便的生产符合的javaBean,如果你Android端解析代码没写错得话就不会有什么问题的。
下面是使用该工具对应你的json生成的javaBean:
<code>public class ceshi { /** *token : 111 *id : 1 *contacts : {"name":"11","tel":"188"} */ private String token; private String id; /** *name : 11 *tel : 188 */ private ContactsBean contacts; public String getToken() { return token; } public void setToken(String token) { this.token = token; } public String getId() { return id; } public void setId(String id) { this.id = id; } public ContactsBean getContacts() { return contacts; } public void setContacts(ContactsBean contacts) { this.contacts = contacts; } public static class ContactsBean { private String name; private String tel; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getTel() { return tel; } public void setTel(String tel) { this.tel = tel; } } }</code>
要不你把转换出来的json和你用来接收json的实体类发一下?
不同语言,不同版本解析 json 的库可能实现上有所不同
php 是内置,所以很容易调用,有些语言要使用第三方的类库
所以干脆问 android 拿接收到的字符串是怎么样的,然后你在用php json_decode,看看能不能解析
gson不能解析php的json字符串,主要看,Android客户端接收到的json字符串是否完整,如果完整,在使用gson的时候,转换成java对象,虽然gson支持泛型,但是至少你要提供json字符串对应的javaBean实例,否则转换一定失败。
<code>$arr = array('token'=>'111','id'=>'1','contacts'=>array('name'=>'11','tel'=>'188')); </code>
在java中应该对应一个class,该类必须有String token,int id,Object contacts,而contacts对应两一个类,该类必须有String name,String tel属性。
Test.java
<code>package test.joyven.com; public class Test { private int id; private String token; private Contacts contacts; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getToken() { return token; } public void setToken(String token) { this.token = token; } public Contacts getContacts() { return contacts; } public void setContacts(Contacts contacts) { this.contacts = contacts; } } </code>
Contacts.java
<code>package test.joyven.com; public class Contacts { private String name; private String tel; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getTel() { return tel; } public void setTel(String tel) { this.tel = tel; } } </code>
把json串打印出来,看看json结构,我估计是你java bean的格式不对。
<code>Model[] models = new Gson().fromJson(JsonStr, Model[].class); </code>
<code>public class Model{ public int id; public String token; public Contacts[] contacts; } public class Contacts { public String name; public String tel; } </code>
最简单的做法,是用Map

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

Redmi Note 14 Pro Plus kini rasmi sebagai pengganti langsung kepada Redmi Note 13 Pro Plus tahun lepas (sekira $375 di Amazon). Seperti yang dijangkakan, Redmi Note 14 Pro Plus mengetuai siri Redmi Note 14 bersama Redmi Note 14 dan Redmi Note 14 Pro. Li

Tutorial ini menunjukkan cara memproses dokumen XML dengan cekap menggunakan PHP. XML (bahasa markup extensible) adalah bahasa markup berasaskan teks yang serba boleh yang direka untuk pembacaan manusia dan parsing mesin. Ia biasanya digunakan untuk penyimpanan data

Dari segi sejarah, Oppo telah menyegarkan semula siri utama 'Find X' pada lewat musim sejuk atau awal musim bunga, kecuali Find X asal yang diumumkan pada Jun 2018. Untuk itu, Find X7 dan Find X7 Ultra hanya berusia hampir enam bulan. pada ketika ini. H

Rentetan adalah urutan aksara, termasuk huruf, nombor, dan simbol. Tutorial ini akan mempelajari cara mengira bilangan vokal dalam rentetan yang diberikan dalam PHP menggunakan kaedah yang berbeza. Vokal dalam bahasa Inggeris adalah a, e, i, o, u, dan mereka boleh menjadi huruf besar atau huruf kecil. Apa itu vokal? Vokal adalah watak abjad yang mewakili sebutan tertentu. Terdapat lima vokal dalam bahasa Inggeris, termasuk huruf besar dan huruf kecil: a, e, i, o, u Contoh 1 Input: String = "TutorialSpoint" Output: 6 menjelaskan Vokal dalam rentetan "TutorialSpoint" adalah u, o, i, a, o, i. Terdapat 6 yuan sebanyak 6

Pelancaran peranti lipat 'Edisi Khas' Samsung yang telah lama ditunggu-tunggu telah mengambil satu kelainan lagi. Dalam beberapa minggu kebelakangan ini, khabar angin mengenai apa yang dipanggil Galaxy Z Fold Edisi Khas menjadi agak senyap. Sebaliknya, tumpuan telah beralih kepada siri Galaxy S25, termasuk

TheZ9 Turbo+ kini telah dikeluarkan di kedai Cina dalam talian Vivo pada 2,199 yuan (~$313) untuk model asas storan dalaman 12GB RAM/256GB, manakala RedmiK70 Extreme Edition bermula pada 2,599 yuan (~$370) dengan konfigurasi yang sama: sebenarnya, ia newiQ
