json 出现 “$ref“:“$[0]“
  HvTJUzsxOBtS 2023年11月22日 79 0


1、打印json 数据时经常出现 如下情况

json 出现 “$ref“:“$[0]“_Test

 

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 展示:

json 出现 “$ref“:“$[0]“_List_02

 

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月22日 0

暂无评论

推荐阅读
  rvP2pqm8fEoB   2023年12月24日   37   0   0 ListJavaListJava
HvTJUzsxOBtS