首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将json文本文件解析为BasicDBobject

如何将json文本文件解析为BasicDBobject
EN

Stack Overflow用户
提问于 2020-10-07 12:03:14
回答 2查看 51关注 0票数 0
代码语言:javascript
运行
复制
 public void process(FeedExchange exchange) throws Exception {
        List<BasicDBObject> collectionAttributes = (List<BasicDBObject>) exchange.getInput();
        for (BasicDBObject collectionAttribute : collectionAttributes) {
          if (collectionAttribute.get("name") != null) {
            String attributeName = collectionAttribute.getString("name");
            if (attributeName.equals(JobParamConstants.DEFAULT_LOCALE) || attributeName
              .equals(JobParamConstants.APPLICABLE_LOCALES)) {
              exchange.setProperty(attributeName, collectionAttribute.getString("_id"));
            }
          }

嗨,我需要为上面的program..so编写junit测试用例,我想传递输入到collectionAttributes.my输入,json是GetCatalogCollectionResponse.json

代码语言:javascript
运行
复制
{
"properties":[{
"attributeId":"123",
"value":"345"
},
{
"attributeId":"2345",
"value":"567"
}]
}

我想在mongodb.i中将这个json解析为collectionAttributes。

代码语言:javascript
运行
复制
BasicDBObject DBObject = new BasicDBObject();
DBObject.parse(GetCatalogCollectionResponse.json);

但是我得到了一个error.could你帮我我是java的初学者,任何帮助都将不胜感激..

EN

回答 2

Stack Overflow用户

发布于 2020-10-07 14:30:33

您可以使用Google库从文件中解析Gson,如下所示。解析后的对象可以映射到java.util.Map,您可以从中构建BasicDBObject

代码语言:javascript
运行
复制
BufferedReader reader = new BufferedReader(new FileReader("test_file.json"));
Gson gson = new Gson();
Map<String, Object> map = gson.fromJson(reader, Map.class);
System.out.println(map);
// {properties=[{attributeId=123, value=345}, {attributeId=2345, value=567}]}

BasicDBObject obj = new BasicDBObject(map);
System.out.println(obj.toJson());
// {"properties": [{"attributeId": "123", "value": "345"}, {"attributeId": "2345", "value": "567"}]}
票数 0
EN

Stack Overflow用户

发布于 2020-11-30 16:12:40

我终于找到了我的问题的答案。

代码语言:javascript
运行
复制
public class BasicDBObjectInput {

  public static String getInput(String resourceName) throws IOException {
    ClassLoader classLoader = BasicDBObjectInput.class.getClassLoader();
    File file = new File(classLoader.getResource(resourceName).getFile());
    String json = FileUtils.readFileToString(file, Charset.defaultCharset());

    return json;
  }

}

在这里,我们可以传递字符串格式的json文件,如下所示

代码语言:javascript
运行
复制
String json = `BasicDBObjectInput.getInput("GetCatalogCollectionAttributeResponse.json"); BasicDBObject collectionAttributes = BasicDBObject.parse(json);`

希望它能对某些人有所帮助。

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

https://stackoverflow.com/questions/64237023

复制
相关文章

相似问题

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