0
点赞
收藏
分享

微信扫一扫

json 出现 “$ref“:“$[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]“_json_02

 

举报

相关推荐

0 条评论