我正在尝试用Java编写一个字符串flattener,它将以下模式转换为指定的表单。
{ x:1, y:1, z:{ a:1, b:2 } }
变平
{ x:1, y:1, z.a:1, z.b:2 }
我计划使用堆栈在{
和}
之间添加内容,并在解析}
后弹回内容,但这会变得复杂。在Java中还有其他更简单的方法吗?
答案 0 :(得分:1)
使用堆栈并不复杂。伪代码:
read beginObject;
while(peekAtNext != endObject && !stack.isEmpty) {
read name;
read value;
if(value == beginObject) {
push name;
} else if (value == endObject) {
pop name;
} else {
write(fullStack + "." + name);
write(".");
write(value);
}
}
read endAbject;
除此之外,没有任何方法可以做到这一点。