首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IllegalArgumentException JSON

IllegalArgumentException JSON
EN

Stack Overflow用户
提问于 2012-02-24 11:08:06
回答 2查看 4.8K关注 0票数 0

我正在尝试将String[]放入jsonObject中,并得到以下错误

java.lang.IllegalArgumentException:无效类型的值。类型:[Ljava.lang.String;with value:[Ljava.lang.String;@189db56 at Ljava.lang.String;@189db56]

请帮我解决这个问题。谢谢

公众JSONObject toJSONObject() {

代码语言:javascript
复制
    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);
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-24 11:15:14

试一试

代码语言:javascript
复制
 jsonObject.put("yourKey", Arrays.asList(yorStringArray));

正如您应该首先阅读手册http://www.json.org/javadoc/org/json/JSONObject.html一样,它没有任何变化,它需要一个Object[]

票数 2
EN

Stack Overflow用户

发布于 2012-02-24 11:26:28

也许你应该看看谷歌-gson

我非常喜欢在Java中使用json。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9429699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档