首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jongo解析JSON时出错

Jongo解析JSON时出错
EN

Stack Overflow用户
提问于 2014-08-21 05:40:36
回答 1查看 457关注 0票数 0

我正在使用Java Play Framework,MongoDB和Jongo的组合作为我的基本web CRUD应用程序。我一直收到一个JSON解析异常,即使我的字符串不包含任何非法字符。在语句末尾的大括号结束时,它实际上失败了。下面是我的错误和代码。查询字符串只是一个字符串构建器,搜索对象是否为空或是否有值,如果有值,则将其附加到字符串。

Jongo方法:

代码语言:javascript
复制
public static Iterable<OneDomain> findWithQueryString(String queryString){
    return domains().find("{#}", queryString).as(OneDomain.class);
}

控制器方法:字符串构建器示例:

代码语言:javascript
复制
        if(queryStringBuilder.toString().equalsIgnoreCase("")){
            queryStringBuilder.append("date: {$gte : " + searchObj.dateFrom + ", $lt: " + searchObj.dateTo + "}");
        }else{
            queryStringBuilder.append(" , ");
            queryStringBuilder.append("date: {$gte : " + searchObj.dateFrom + ", $lt: " + searchObj.dateTo + "}");
        }

        String queryString = queryStringBuilder.toString();

        Iterable<OneDomain> filteredIterable = OneDomain.findWithQueryString(queryString);

给我这个错误:

代码语言:javascript
复制
   Caused by: com.mongodb.util.JSONParseException:
   {"source : Online Lists , blacklist : true , vetted : true , is : false , isNot : true"}
                                                                                          ^

以"}“上的错误结束它。

除此之外,如果我试图通过放入一个\“这样它就变成了\"date\”来转义字符,它将会像这样解析并出错:

代码语言:javascript
复制
   Caused by: com.mongodb.util.JSONParseException:
   {"\"source\" : \"Online Lists\" , \"blacklist\" : true , \"vetted\" : true , \"is\" : false , \"isNot\" : true"}
EN

回答 1

Stack Overflow用户

发布于 2014-08-21 05:42:59

您正在手动构建JSON,而且这样做是错误的。您需要学习基本的JSON syntax requirements

一个基本的JSON编码对象是

代码语言:javascript
复制
{"key1":"value1","key2":"value with \" escaped internal quote"}

注意所有的引号。您的json字符串是一个非常长的对象键,没有关联值,这是不允许的。所有键都必须有值。

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

https://stackoverflow.com/questions/25414884

复制
相关文章

相似问题

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