DeMemberInfo
This commit is contained in:
@@ -5,7 +5,6 @@
|
||||
*/
|
||||
package org.redkale.test.convert;
|
||||
|
||||
import java.util.*;
|
||||
import org.redkale.convert.*;
|
||||
import org.redkale.convert.bson.*;
|
||||
import org.redkale.convert.json.*;
|
||||
@@ -41,11 +40,7 @@ public class InnerCoderEntity {
|
||||
final org.redkale.convert.ConvertFactory factory) {
|
||||
return new SimpledCoder<Reader, Writer, InnerCoderEntity>() {
|
||||
|
||||
private DeMemberNode memberNode;
|
||||
|
||||
private Map<String, DeMember> deMemberFieldMap;
|
||||
|
||||
private Map<Integer, DeMember> deMemberTagMap;
|
||||
private DeMemberInfo memberInfo;
|
||||
|
||||
// 必须与EnMember[] 顺序一致
|
||||
private final DeMember[] deMembers = new DeMember[] {
|
||||
@@ -60,13 +55,7 @@ public class InnerCoderEntity {
|
||||
};
|
||||
|
||||
{
|
||||
this.deMemberFieldMap = new HashMap<>(this.deMembers.length);
|
||||
this.deMemberTagMap = new HashMap<>(this.deMembers.length);
|
||||
for (DeMember member : this.deMembers) {
|
||||
this.deMemberFieldMap.put(member.getAttribute().field(), member);
|
||||
this.deMemberTagMap.put(member.getTag(), member);
|
||||
}
|
||||
this.memberNode = DeMemberNode.create(deMembers);
|
||||
this.memberInfo = DeMemberInfo.create(deMembers);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -88,7 +77,7 @@ public class InnerCoderEntity {
|
||||
int index = 0;
|
||||
final Object[] params = new Object[deMembers.length];
|
||||
while (in.hasNext()) {
|
||||
DeMember member = in.readFieldName(memberNode, deMemberFieldMap, deMemberTagMap); // 读取字段名
|
||||
DeMember member = in.readFieldName(memberInfo); // 读取字段名
|
||||
in.readBlank(); // 读取字段名与字段值之间的间隔符,JSON则是跳过冒号:
|
||||
if (member == null) {
|
||||
in.skipValue(); // 跳过不存在的字段的值, 一般不会发生
|
||||
|
||||
@@ -40,7 +40,7 @@ public class Json5Test {
|
||||
bean.name = "ha\t\"ha";
|
||||
bean.desc = "normal";
|
||||
String json =
|
||||
"{/*多行\r\n注释**/\"decmails\":3.2,//单行注释\r\n\"id\":0x1F4,\"idx\":600,\"name\":\"ha\\t\\\"ha\",\"desc\":\"normal\",\"value\":44444,}";
|
||||
"{/*多行\r\n注释**/\"decmails\":3.2,//单行注释\r\n\"id\":0x1F4,\"idx\":600,name:\"ha\\t\\\"ha\",\"desc\":\"normal\",\"value\":44444,}";
|
||||
Json5Bean bean2 = convert.convertFrom(Json5Bean.class, json);
|
||||
System.out.println(bean2.name);
|
||||
Assertions.assertTrue(bean.equals(bean2));
|
||||
|
||||
Reference in New Issue
Block a user