Jadual Kandungan
回复内容:
Rumah pembangunan bahagian belakang tutorial php php生成的json传给android gson无法解析

php生成的json传给android gson无法解析

Jun 06, 2016 pm 08:09 PM
android php

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>
Salin selepas log masuk

要不你把转换出来的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>
Salin selepas log masuk

在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>
Salin selepas log masuk

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>
Salin selepas log masuk

把json串打印出来,看看json结构,我估计是你java bean的格式不对。

<code>Model[] models = new Gson().fromJson(JsonStr, Model[].class);
</code>
Salin selepas log masuk
<code>public class Model{
    public int id;
    public String token;
    public Contacts[] contacts;
}

public class Contacts {
    public String name;
    public String tel;
}


</code>
Salin selepas log masuk

最简单的做法,是用Map去解析你的json,遇到对象就进行强制转换,虽然不优雅,但通用。针对那些不太清楚自己的Bean写法的人比较好用。上面的回复都是bean的对应写法。

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Dec 24, 2024 pm 04:42 PM

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

Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Dec 20, 2024 am 11:31 AM

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

Xiaomi Redmi Note 14 Pro Plus tiba sebagai telefon pintar Qualcomm Snapdragon 7s Gen 3 pertama dengan kamera Light Hunter 800 Xiaomi Redmi Note 14 Pro Plus tiba sebagai telefon pintar Qualcomm Snapdragon 7s Gen 3 pertama dengan kamera Light Hunter 800 Sep 27, 2024 am 06:23 AM

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

Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Feb 07, 2025 am 11:57 AM

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

Reka bentuk Oppo Find X8 kelihatan seperti persilangan antara Apple iPhone 16 Pro dan OnePlus Open dalam imej awal Reka bentuk Oppo Find X8 kelihatan seperti persilangan antara Apple iPhone 16 Pro dan OnePlus Open dalam imej awal Sep 28, 2024 am 06:04 AM

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

Program PHP untuk mengira vokal dalam rentetan Program PHP untuk mengira vokal dalam rentetan Feb 07, 2025 pm 12:12 PM

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

Samsung Galaxy Z Fold Edisi Khas didedahkan untuk mendarat pada akhir Oktober apabila nama yang bercanggah muncul Samsung Galaxy Z Fold Edisi Khas didedahkan untuk mendarat pada akhir Oktober apabila nama yang bercanggah muncul Oct 01, 2024 am 06:21 AM

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

iQOO Z9 Turbo+ muncul sebagai telefon pintar Dimensity 9300+ dengan hayat bateri \'luar carta\' iQOO Z9 Turbo+ muncul sebagai telefon pintar Dimensity 9300+ dengan hayat bateri \'luar carta\' Sep 26, 2024 am 06:20 AM

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

See all articles