nutzam/nutz — Issue #120: JSON循环引用的序列化与反序列化, 以及EL支持
Author: juqkai
Created: 2011-11-25 14:49:26+00:00
State: open

今天 @Jay 蓝色幽默 突然给我说, 现在JSON不支持循环引用的序列化与反序列化, 但是这种情况很多时候都要用到. 有点问题.

当时讨论了一下, 感觉可以弄个对象引用符的形式, 然后跟EL进行整合, 通过EL来读取引用信息. 例子:

public class A {
String name;
B b;
}

public class B {
String name;
A a;
}

A a = new A();
B b = new B();
a.name = "testa";
b.name = "testb";
a.b = b;
b.a = a;

Json.toJson(a)

生成:

{
"name" :"testa",
"b" :{
"name" :"testb",
"a" :${root}
}
}

其中root是一个root.abc.bcd形式的路径. 同时通过这样的整合, 可以使JSON完全支持EL表达式.