Java IllegalArgumentException JSON
我试图将字符串[]放入jsonObject中,并得到以下错误 java.lang.IllegalArgumentException:值的类型无效。类型: [[Ljava.lang.String;]的值:[[Ljava.lang.String;@189db56]at com.ibm.json.java.JSONObject.put(JSONObject.java:241) 请帮我解决这个问题。 谢谢 公共JSONObject到JSONObject(){Java IllegalArgumentException JSON,java,json,illegalargumentexception,Java,Json,Illegalargumentexception,我试图将字符串[]放入jsonObject中,并得到以下错误 java.lang.IllegalArgumentException:值的类型无效。类型: [[Ljava.lang.String;]的值:[[Ljava.lang.String;@189db56]at com.ibm.json.java.JSONObject.put(JSONObject.java:241) 请帮我解决这个问题。 谢谢 公共JSONObject到JSONObject(){ JSONObject JSONObject=
JSONObject JSONObject=new JSONObject();
//使用反射获取所有get方法的列表
//并将相应的值添加到JSON对象中
Class cl=dto.getClass();
infoFormat(“将{0}转换为JSON对象”,cl.getName());
方法[]方法=cl.getDeclaredMethods();
用于(方法:方法){
String methodName=method.getName();
if(methodName.startsWith(“get”)){
infoFormat(“处理方法-{0}”,methodName);
//检查是否没有参数
if(method.getParameterTypes().length==0){
String tag=getLabel(方法);
对象标记值=新对象();
试一试{
tagValue=method.invoke(dto);
}捕获(例外e){
errorFormat(“调用方法时出错-{0}”,method.getName());
}
if(方法.getReturnType().isAssignableFrom(BaseDTO.class)){
DTOSerializer serializer=新的DTOSerializer((BaseDTO)tagValue);
put(标记,serializer.toJSONObject());
}else if(方法.getReturnType().isAssignableFrom(List.class)){
ListSerializer serializer=新ListSerializer((列表)tagValue);
put(标记,serializer.toJSONArray());
}否则{
if(tagValue!=null)jsonObject.put(tag,tagValue);
}
}
}
}
返回(jsonObject);
}
试试看
由于您应该先阅读手册,因此手册没有任何变化,希望有一个
对象[]
也许您应该看看
我非常喜欢在Java中使用json
JSONObject jsonObject = new JSONObject();
//Use reflection to get a list of all get methods
//and add there corresponding values to the JSON object
Class cl = dto.getClass();
logger.infoFormat("Converting {0} to JSON Object", cl.getName());
Method[] methods = cl.getDeclaredMethods();
for (Method method : methods) {
String methodName = method.getName();
if (methodName.startsWith("get")) {
logger.infoFormat("Processing method - {0}", methodName);
//Check for no parameters
if (method.getParameterTypes().length == 0) {
String tag = getLabel(method);
Object tagValue = new Object();
try {
tagValue = method.invoke(dto);
} catch (Exception e) {
logger.errorFormat("Error invoking method - {0}", method.getName());
}
if (method.getReturnType().isAssignableFrom(BaseDTO.class)) {
DTOSerializer serializer = new DTOSerializer((BaseDTO) tagValue);
jsonObject.put(tag, serializer.toJSONObject());
} else if (method.getReturnType().isAssignableFrom(List.class)) {
ListSerializer serializer = new ListSerializer((List<BaseDTO>) tagValue);
jsonObject.put(tag, serializer.toJSONArray());
} else {
if (tagValue != null) jsonObject.put(tag, tagValue);
}
}
}
}
return(jsonObject);
}
jsonObject.put("yourKey", Arrays.asList(yorStringArray));