响应采用奇怪的格式:Ljava.lang.Object; @ 43da8f90

时间:2015-01-04 17:38:04

标签: java android parsing

我正在调用一个返回此字符串响应的服务:

{id_richiesta=d877467614e1a80a1bade73d7014c595, risposta={percorsi=[Ljava.lang.Object;@43da8f90, abilitata=1, id_news=-1, monitorata=1}}

这是一种非常奇怪的格式。 我怎么解析这个?最重要的是Ljava.lang.Object;@43da8f90;这是这个元素的数组:

  1. string id_percorso
  2. string descrizione
  3. string capolinea

2 个答案:

答案 0 :(得分:2)

  

percorsi = [Ljava.lang.Object; @ 43da8f90

这是因为您使用的Object上没有toString()方法。或者如果是,则使用java.lang.Object提供的默认实现。为了解决这个问题,请将您的数据放在您自己的对象中,并覆盖toString()以打印出您想要的内容。

答案 1 :(得分:0)

什么是Ljava.lang.Object;@43da8f90

最后是符号和哈希码的类名,对象的哈希码.Java中的所有类都直接或间接地从Object类继承。 Object类有一些基本方法,如clone(),toString(),equals(),..等。对象中的默认toString()方法打印“class name @ hash code”.

什么是解决方案

您需要覆盖类中的toString方法,因为它会以您可以理解的可读格式为您提供有关对象的明确信息。

覆盖toString

的优点
  

帮助程序员记录调试Java程序

     

由于 toString 是在 java.lang.Object 中定义的,并且没有提供有价值的信息,所以它是      为子类重写它的好习惯。