IllegalArgumentException JSON
-
12-11-2019 - |
Frage
Ich versuche, String[] in jsonObject einzufügen und erhalte die folgende Fehlermeldung
java.lang.IllegalArgumentException:Ungültiger Werttyp.Typ:[[Ljava.lang.String;] mit Wert:[Ljava.lang.String;@189db56] unter com.ibm.json.java.jsonObject.put (jsonObject.java:241)
Bitte helfen Sie mir, dieses Problem zu lösen.Danke
öffentliches JSONObject toJSONObject() {
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);
}
Lösung
versuchen
jsonObject.put("yourKey", Arrays.asList(yorStringArray));
Da Sie zuerst das Handbuch lesen sollten http://www.json.org/javadoc/org/json/JSONObject.html Es gibt keine Variation davon, die erwartet wird Object[]
Andere Tipps
Vielleicht sollten Sie einen Blick auf Google-GSON .
Ich mag es sehr, mit JSON in Java zu arbeiten.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow