普元 EOS Platform 7.6 Json和实体对象互相转换方案
2017-08-17 08:37
441 查看
转至元数据起始
环境:EOS Platform 7.6 开发版+Oracle 10g数据库
转换用的主要代码:
//Json串转实体数组
public static DataObject[] convertJsonStringToDataObjects(
String entityName, String jsonString) throws JSONException {
ArrayList<DataObject> result = new ArrayList<DataObject>();
JSONArray jsonArr = new JSONArray(jsonString);
for (int i = 0; i < jsonArr.length(); i++) {
JSONObject json = jsonArr.getJSONObject(i);
DataObject dataObject = DataObjectUtil.createDataObject(entityName);
List list = dataObject.getInstanceProperties();
for (Object object : list) {
Property key = (Property) object;
String keyType = key.getType().getName();//获取字段类型
if (json.has(key.getName())) {
Object value = json.get(key.getName());
if (value == JSONObject.NULL)
continue;
dataObject.set(key, value);
dataObject = converType(keyType, key, dataObject, value);
}
}
result.add(dataObject);
}
return result.toArray(new DataObject[result.size()]);
}
//json串转实体对象
public static DataObject convertJsonStringToDataObject(String entityName,
String jsonString) throws JSONException {
JSONObject json = new JSONObject(jsonString);
DataObject dataObject = DataObjectUtil.createDataObject(entityName);
List list = dataObject.getInstanceProperties();
for (Object object : list) {
Property key = (Property) object;
String keyType = key.getType().getName();//获取字段类型
if (json.has(key.getName())) {
Object value = json.get(key.getName());
if (value == JSONObject.NULL)
continue;
dataObject = converType(keyType, key, dataObject, value);//根据不同类型设置值
} else {
}
}
return dataObject;
}
//实体转json串
public static String convertDataObjectToJsonString(DataObject dataObject) {
DataObject[] dataObjects = new DataObject[] { dataObject };
String jsonString = convertDataObjectsToJsonString(dataObjects);
jsonString = jsonString.substring(1, jsonString.length() - 1);
return jsonStri
a854
ng;
}
//实体数组转json串
public static String convertDataObjectsToJsonString(DataObject[] dataObjects) {
Map<String, DataObject[]> root = new HashMap<String, DataObject[]>();
root.put("data", dataObjects);
StringWriter stringWriter = new StringWriter();
JSONWriter jsonWriter = new JSONWriter(stringWriter);
try {
ExtendedXMLSerializer serializer = new ExtendedXMLSerializer();
SerializeOption operation = new SerializeOption();
operation.setCreateOuterCollectionNode(true);
serializer.setOption(operation);
IMarshallingNode node = serializer.marshallToNode(root, "root");
jsonWriter.object();
List<IMarshallingNode> children = node.getChildren();
for (IMarshallingNode child : children) {
write(child, jsonWriter);
}
jsonWriter.endObject();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e.getMessage());
}
String jsonString = stringWriter.toString();
jsonString = jsonString.substring(8, jsonString.length() - 1);
return jsonString;
}
【解答】
Demo源码,点击下载,执行建表语句后,插入数据,访问testJDconvert逻辑流可以看到效果环境:EOS Platform 7.6 开发版+Oracle 10g数据库
转换用的主要代码:
//Json串转实体数组
public static DataObject[] convertJsonStringToDataObjects(
String entityName, String jsonString) throws JSONException {
ArrayList<DataObject> result = new ArrayList<DataObject>();
JSONArray jsonArr = new JSONArray(jsonString);
for (int i = 0; i < jsonArr.length(); i++) {
JSONObject json = jsonArr.getJSONObject(i);
DataObject dataObject = DataObjectUtil.createDataObject(entityName);
List list = dataObject.getInstanceProperties();
for (Object object : list) {
Property key = (Property) object;
String keyType = key.getType().getName();//获取字段类型
if (json.has(key.getName())) {
Object value = json.get(key.getName());
if (value == JSONObject.NULL)
continue;
dataObject.set(key, value);
dataObject = converType(keyType, key, dataObject, value);
}
}
result.add(dataObject);
}
return result.toArray(new DataObject[result.size()]);
}
//json串转实体对象
public static DataObject convertJsonStringToDataObject(String entityName,
String jsonString) throws JSONException {
JSONObject json = new JSONObject(jsonString);
DataObject dataObject = DataObjectUtil.createDataObject(entityName);
List list = dataObject.getInstanceProperties();
for (Object object : list) {
Property key = (Property) object;
String keyType = key.getType().getName();//获取字段类型
if (json.has(key.getName())) {
Object value = json.get(key.getName());
if (value == JSONObject.NULL)
continue;
dataObject = converType(keyType, key, dataObject, value);//根据不同类型设置值
} else {
}
}
return dataObject;
}
//实体转json串
public static String convertDataObjectToJsonString(DataObject dataObject) {
DataObject[] dataObjects = new DataObject[] { dataObject };
String jsonString = convertDataObjectsToJsonString(dataObjects);
jsonString = jsonString.substring(1, jsonString.length() - 1);
return jsonStri
a854
ng;
}
//实体数组转json串
public static String convertDataObjectsToJsonString(DataObject[] dataObjects) {
Map<String, DataObject[]> root = new HashMap<String, DataObject[]>();
root.put("data", dataObjects);
StringWriter stringWriter = new StringWriter();
JSONWriter jsonWriter = new JSONWriter(stringWriter);
try {
ExtendedXMLSerializer serializer = new ExtendedXMLSerializer();
SerializeOption operation = new SerializeOption();
operation.setCreateOuterCollectionNode(true);
serializer.setOption(operation);
IMarshallingNode node = serializer.marshallToNode(root, "root");
jsonWriter.object();
List<IMarshallingNode> children = node.getChildren();
for (IMarshallingNode child : children) {
write(child, jsonWriter);
}
jsonWriter.endObject();
} catch (Exception e) {
e.printStackTrace();
throw new RuntimeException(e.getMessage());
}
String jsonString = stringWriter.toString();
jsonString = jsonString.substring(8, jsonString.length() - 1);
return jsonString;
}
相关文章推荐
- 普元 EOS Platform 7.6 Mysql5.0 表里字段有默认值为0000-00-00 00:00:00的时间戳,查询数据库表对应的实体报错
- (net.sf.json) java对象和json对象之间互相转换
- 普元 EOS Platform 7.6 sso集成业务应用实现单点登录,但登录跳转到成功页面时,经常出现闪屏问题,每秒10次以上
- 一个简单的json对象和json字符串互相转换的方法
- 关于json对象与字符串的互相转换
- atitit.XML类库选型及object 对象bean 跟json转换方案
- JS-JSON和字符串互相转换-将字符串转换成对象-对象转换成字符串
- JAVA List对象与json串互相转换
- android java json与实体互相转换工具
- JSON对象 和 java对象互相转换
- C# 对象与JSON串互相转换
- C# 对象与JSON字符串互相转换的几种方式
- js-jquery-对象与JSON字符串互相转换
- java对象和json对象之间互相转换
- json与Bean对象互相转换
- javascript JSON对象已字符串互相转换
- Java中对象和json互相转换的工具类
- 普元 EOS Platform 7.6 集群,同一个流程实例,不同节点在workspace中显示的状态不一致
- C# 对象与JSON串互相转换
- java对象和json对象之间互相转换