douchuopiao9002 2018-08-16 06:56
浏览 142

PHP - 将JAVA / JS对象转换为PHP数组

I am requesting some data from Facebook over JAVA in android and sending it to the server:

Address[addressLines=[0:"Königspl., 86150 Augsburg, Germany"],feature=Königsplatz,admin=Bayern,sub-admin=Schwaben,locality=Augsburg,thoroughfare=Königsplatz,postalCode=86150,countryCode=DE,countryName=Germany,hasLatitude=true,latitude=48.366384499999995,hasLongitude=true,longitude=10.8943626,phone=null,url=null,extras=null]

I don't know what exactly this is, JAVA Object or I don't know..

I already tried: $array = json_decode($data, true); and it returns NULL

What is it and how do I convert it to PHP Array?

EDIT:

This is the JAVA (actually kotlin) code I use to generate the data:

val geocoder = Geocoder(this, Locale.ENGLISH)
try {
    val addresses = geocoder.getFromLocation(48.366512, 10.894446, 1)

    if (addresses != null)
    {
        val returnedAddress = addresses[0]
        val strReturnedAddress = StringBuilder("Address:
")
        for (i in 0 until returnedAddress.maxAddressLineIndex) {
            strReturnedAddress.append(returnedAddress.getAddressLine(i)).append("
")
        }

        geocoderStuff = returnedAddress.toString()

    } else
    {
        // NO ADDRESS
    }
} catch (e: IOException) {
    e.printStackTrace()
}

And this how I send it:

                val params = RequestParams()
                params.put("geocoder", geocoderStuff)
                letsDoSomeNetworking(params)

private fun letsDoSomeNetworking(params: RequestParams) {

        // AsyncHttpClient belongs to the loopj dependency.
        val client = AsyncHttpClient()

        client.get("http://www.bla.com/android/fb_access.php", params, object : JsonHttpResponseHandler()
        {
            override fun onSuccess(statusCode: Int, headers: Array<Header>?, response: JSONObject?)
            {
                // success
            }

            override fun onFailure(statusCode: Int, headers: Array<Header>?, e: Throwable, response: JSONObject?)
            {
                // error
            }
        })
    }
  • 写回答

1条回答 默认 最新

  • duanduo3712 2018-08-16 07:43
    关注

    The solution is to use gson library on JAVA/Kotlin side after getting the data:

            val returnedAddress = addresses[0]
            val strReturnedAddress = StringBuilder("Address:
    ")
            for (i in 0 until returnedAddress.maxAddressLineIndex) {
                strReturnedAddress.append(returnedAddress.getAddressLine(i)).append("
    ")
            }
    
            val gson = Gson() // HERE
            val json = gson.toJson(returnedAddress) // HERE
    
            geocoderStuff = json
    
    评论

报告相同问题?

悬赏问题

  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料