我已经通过service.xml创建了liferay实体。我可以保存Json对象在字符串列和返回这个值像对象从api?现在是json的响应是这样的:
{
"name": "test",
"time": 1656067273906,
"longitude": 00.00000,
"latitude": 00.00000,
"Json": "{"name":"test", "depth":"0", "main":"true", "power":"0"}",
"description": "test",
}
但我希望获得"json"值不加引号,像这样:
{
"name": "test",
"time": 1656067273906,
"longitude": 00.00000,
"latitude": 00.00000,
"Json": {"name":"test", "depth":"0", "main":"true", "power":"0"},
"description": "test",
}
如果您在service.xml
中编写的实体将remote-service
属性设置为true
,例如
<entity name="Employee" local-service="true" remote-service="true" uuid="true" trash-enabled="true">
和一个名为info
的文本字段(例如),您可以在其中存储JSON字符串,然后您可以在<your service module src>/service/impl/EmployeeServiceImpl.java
中编写一个方法,该方法返回包含来自服务实体的数据的JSONObject。例如,你可以添加一个方法到EmployeeServiceImpl
类
public JSONObject myCustomMethod(long entityId) throws Exception {
Employee employee EmployeeLocalServiceUtil.getEmployee(entityId);
JSONObject result = JSONFactoryUtil.createJSONObject();
result.put("name", employee.getName());
result.put("Json", JSONFactoryUtil.createJSONObject(employee.getInfo()));
return result;
}
之后,运行buildService
任务,然后运行build
和deploy
。您将发现myCustomMethod
为JSONWS Api。