小编use*_*151的帖子

在java中的jackson json反序列化期间忽略缺少的属性

在示例中

class Person {
   String name;
   int age;
}
Run Code Online (Sandbox Code Playgroud)

如果json对象缺少属性'age',

{
  name : John
}

Person person = objectMapper.readValue(jsonFileReader, Person.class);
Run Code Online (Sandbox Code Playgroud)

它抛出一个JsonMappingException,说它不能反序列化.是否有注释在反序列化期间忽略缺少的字段?

谢谢

java serialization json jackson

41
推荐指数
5
解决办法
7万
查看次数

解决方案时super不能成为java中的第一行构造函数

我正在使用CSVReader类,它将本地文件作为输入.但现在,我需要能够读取本地文件以及具有URL路径的文件(如http://example.com/example.txt).为此,我想从CSVReader派生一个类,用于标识文件是本地文件还是URL,然后使用构造函数第一行中的super()将InputStream传递给父文件.这样做的优雅方式是什么?

public class FileReader extends CsvReader{
    public FileReader(){
        if (fileName != null) {

               if (fileName.trim().startsWith("http:")) {
                // it is URL
                URL url = new URL(fileName);
                inputStream = new BufferedReader(new InputStreamReader(
                        url.openStream(), charset),
                        StaticSettings.MAX_FILE_BUFFER_SIZE); 
               }else{
                //it is a local file
                inputStream = new BufferedReader(new InputStreamReader(
                        new FileInputStream(fileName), charset),
                        StaticSettings.MAX_FILE_BUFFER_SIZE);
               } 

            }
            //Now pass the input stream to CsvReader
            super(inputStream, delimiter, charset);  //error - super has to be first line of constructor
    }
}
Run Code Online (Sandbox Code Playgroud)

java

6
推荐指数
2
解决办法
1676
查看次数

Facebook Graph API:解析输出

我试图通过此调用获取使用FB Graph API的朋友的名字:

$friends = file_get_contents('https://graph.facebook.com/me/friendsaccess_token='.$session["access_token"]);

echo "Friends : $friends\n";
Run Code Online (Sandbox Code Playgroud)

这给了我一个表单列表:

{"data":[{"name":"ABC XYZ","id":"12212839"},{"name":"PQR GHI","id":"5004678"}]}
Run Code Online (Sandbox Code Playgroud)

我希望能够只在阵列中存储NAMES.如何使用$ friends获取名称?像$ friends ['name']这样的东西似乎不起作用.

请帮忙.谢谢.

php facebook facebook-graph-api

4
推荐指数
1
解决办法
5994
查看次数

如何避免从Guava Cache中删除条目

我正在使用Guava Cache在内存中缓存大约100K记录.我cache.putAll(Map<K,V>)用来预加载缓存.加载大约20K记录后,我看到删除通知,原因是'REPLACED'.所有条目的最大大小为1GB,重量为1,expireAfterAccess为24小时.所有记录都足够1GB.如何确保在24小时之前没有更换任何条目?

MyCacheLoader cacheLoader = new MyCacheLoader();
CacheBuilder<Long, Map<String, List<String>>> cacheBuilder = CacheBuilder.newBuilder().
        initialCapacity(1024 * 1024 * 1024).
        //maximumSize(1024 * 1024 * 1024).
        maximumWeight(1000000).
        weigher(new Weigher<Long, Map<String, List<String>>>(){
            public int weigh(Long arg0, Map<String, List<String>> arg1) {
                return 1;
            }
        }).
        concurrencyLevel(1).
        expireAfterAccess(24, TimeUnit.HOURS);

cache = cacheBuilder.build(cacheLoader);
Run Code Online (Sandbox Code Playgroud)

java caching guava

4
推荐指数
1
解决办法
2526
查看次数

如何从localtime()中提取时区

我正在使用以下代码打印当前时间.

use Getopt::Long;
use Time::Local;
sub gettime
{
        my $t = time();
        my ($sec,$mn,$hr,$mday,$mon,$yr,@left, $dstr);

        ($sec,$mn,$hr,$mday,$mon,$yr,@left) = localtime($t);
        $yr  = $yr-100+2000;
        $mon += 1;
        $dstr = sprintf "%02d:%02d:%02d (%02d-%02d-%04d)", $hr, $mn, $sec, $mon,
 $mday, $yr;
        print $dstr;
}

gettime();
Run Code Online (Sandbox Code Playgroud)

我可以使用 - local $ ENV {TZ} =":/ usr/share/lib/zoneinfo/America/Los_Angeles"来设置时区;

如何从localtime()中提取时区?

perl timezone localtime

2
推荐指数
1
解决办法
5729
查看次数

英语中键值对的良好分隔符

我想在平面文件中存储许多键值对.密钥可以有多个值.键和值是英文的,偶尔也可能包含Unicode字符.将这些键和值存储在文件中时可以使用哪些好的分隔符,以便不会将分隔符作为任何键或值的一部分进行处理.例如,'&'不是一个好的分隔符,因为键或值可以包含'&'.

我需要两个分隔符,一个用于将键与值分开,另一个用于分隔值.

nlp

1
推荐指数
1
解决办法
578
查看次数