我们在写通用方法时,往往通过反射来创建对象。在有时候我们将动态对象转成JSON。需要将另外动态对象插入到JSON中时。就需要如下操作:
工作中,将亚马逊接口通用化的时候。需要将订单明细B 加入到订单主体A中。并且自定义属性AmazonOrderDetail。
正常的操作是新建对象 C 将属性分别赋值就行了。
但是我是通用接口。只知道SDK中的ClassName.
于是就有了下面的操作。
直接上代码:
//对象A
Object currentObj;
JSONArray jsonArrayInput = new JSONArray();
JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(currentObj));
//对象B 类名
String childClassName = "";
jsonArrayInput.addAll(JSON.parseArray("对象B的JSON串", Class.forName(childClassName)));
jsonObject.put("AmazonOrderDetail", jsonArrayInput);
附加在JSon中获取所有键值:
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.springframework.stereotype.C