我有一个具有此结构的JSON文件......
{"id":"1","name":"name","categories":["category1","category2","category3"],"type":"store"}
{"id":"2","name":"name","categories":["category1","category2","category3"],"type":"store"}
没有分隔每个对象的键或逗号。所以当我使用这段代码时......
File input = new File("test.json");
ObjectMapper mapper = new ObjectMapper();
Map obj = mapper.readValue(input, Map.class);
obj变量只有json文件中的第一行才有意义,因为它不知道密钥是什么。
我尝试通过包装像这样的对象来添加一个......
{ "Key": [
{"id":"1","name":"name","categories":["category1","category2","category3"],"type":"store"},
{"id":"2","name":"name","categories":["category1","category2","category3"],"type":"store"}
] }
包括添加逗号以将每个逗号分开,因为文件没有任何逗号来分隔它们。
虽然这有效......
我希望完全避免这种情况,但不确定我是否可以。有没有办法使用原始格式将json文件读入Map中,以便我可以根据需要过滤数据?
答案 0 :(得分:1)
有一个简单的解决方案,不需要修改文件。逐行阅读您的文件,然后将一行提供给function countPositivesSumNegatives(input) {
let countPositive = 0;
let sumNegative = 0;
if (input === null || input === []){
return [];
} else {
sumNegative = input.reduce(function(prev,num){
if (num > 0) {
countPositive++;
} else {
prev += num;
}
return prev; // <---- THE MISSING PART
}, 0);
}
return [countPositive, sumNegative];
}
var data = [1,2,3,4,5,-4,7,-3];
console.log(countPositivesSumNegatives(data));
。您将获得许多地图实例,您可以将它们存储在List,JsonArray或您需要在代码中创建的其他地图中。你的代码看起来像:
.reduce()