json 出现 “$ref“:“$[0]“
1、打印json 数据时经常出现 如下情况2、出现原因是因为 jsonArray 中 保存了相同的对象,当引用时,只是使用了前一个对象的引用。public class MainActivity extends AppCompatActivity {private String TAG = "jsonTest";@Overrideprotected void onCreate(Bundle save
·
1、打印json 数据时经常出现 如下情况

2、出现原因
是因为 jsonArray 中 保存了相同的对象,当引用时,只是使用了前一个对象的引用。
public class MainActivity extends AppCompatActivity {
private String TAG = "jsonTest";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Map<String ,String > map = new HashMap<>();
map.put("小明","男");
List<Map> listMap = new ArrayList<>();
listMap.add(map);
listMap.add(map); // 这里直接添加一样的数据对象
JSONArray jsonArray = new JSONArray();
jsonArray.addAll(listMap);
Log.i(TAG,jsonArray.toJSONString());
}
}
3、解决办法
public class MainActivity extends AppCompatActivity {
private String TAG = "jsonTest";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Map<String ,String > map = new HashMap<>();
map.put("小明","男");
List<Map> listMap = new ArrayList<>();
listMap.add(map);
listMap.add(map);
// 单个关闭引用检测
String listString = JSON.toJSONString(listMap, SerializerFeature.DisableCircularReferenceDetect);
JSONArray jsonList = (JSONArray) JSON.parse(listString);
Log.i(TAG,jsonList.toJSONString());
}
}
log 展示:

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)