一种奇怪格式的java响应:Ljava。lang.对象@43da8f90
我正在调用一个返回此字符串响应的服务:
{id_richiesta=d877467614e1a80a1bade73d7014c595, risposta={percorsi=[Ljava.lang.Object;@43da8f90, abilitata=1, id_news=-1, monitorata=1}}
这是一种非常奇怪的格式。
我如何解析这个?首先Ljava.lang.Object;@43da8f90;
这是此元素的数组:
- 字符串id\u percorso
- 字符串描述
- 线状capolinea
# 1 楼答案
什么是
Ljava.lang.Object;@43da8f90
它是类名,后跟at符号,最后是散列码,即对象的散列码。Java中的所有类都直接或间接地继承自对象类。对象类有一些基本方法,如clone()、toString()、equals()、等,。。等等。对象中的默认
toString()
方法打印“class name @ hash code”.
解决方案是什么
您需要重写类中的
toString
方法,因为它将以可读的格式为您提供有关对象的清晰信息,您可以理解覆盖
toString
的优点是:# 2 楼答案
发生这种情况是因为您正在使用的
Object
上没有toString()
方法。或者,如果是,则使用java.lang.Object
提供的默认实现。为了避免这种情况,将数据放在自己的对象中,并覆盖toString()
以按自己的方式打印出来