我正在调用一个返回此字符串响应的服务:
{id_richiesta=d877467614e1a80a1bade73d7014c595, risposta={percorsi=[Ljava.lang.Object;@43da8f90, abilitata=1, id_news=-1, monitorata=1}}
这是一种非常奇怪的格式。
我怎么解析这个?最重要的是Ljava.lang.Object;@43da8f90;
这是这个元素的数组:
答案 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 中定义的,并且没有提供有价值的信息,所以它是 为子类重写它的好习惯。