2014-02-08 49 views
2

由于标题描述我试图分配一个json字符串到我的类,但json字符串大概会包含几个变量,我没有在它们被分配到的类中创建。json字符串与未知对象

要显示你先什么工作,我有

ObjectMapper mapper = new ObjectMapper(); 

    try { 

     Tweet tweet1 = mapper 
       .readValue(
         "{\"created_at\":\"Sat Feb 08 11:26:02 +0000 2014\"}", 
         Tweet.class); 

    } catch (JsonMappingException e) { 

     e.printStackTrace(); 

    } catch (IOException e) { 

     e.printStackTrace(); 

    } 

这样的作品,作为类,鸣叫,有变量“created_at”与getter和setter方法全部到位。

像上面提到的那样,我需要期待readValue方法中的字符串包含我的Tweet类中找不到的东西。

要解决这个问题,我进口和使用:

mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); 

理论上帮助我避免在那里所有的未知,只是分配是在鸣叫类中找到的值。

所以,我添加了一个值,它是不是在分享Tweet发现,像这样:

ObjectMapper mapper = new ObjectMapper(); 
    mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES); 

    try { 

     Tweet tweet1 = mapper 
       .readValue(
         "{\"created_at\":\"Sat Feb 08 11:26:02 +0000 2014\",\"id\":432113085571407872\"}", 
         Tweet.class); 

    } catch (JsonMappingException e) { 

     e.printStackTrace(); 

    } catch (IOException e) { 

     e.printStackTrace(); 

    } 

现在,值“ID”并不在我的资料Tweet类存在,并应为此被忽略(没有?)。

但是,现在控制台抛出我一个错误:

com.fasterxml.jackson.core.JsonParseException:意外字符( '“'(代码34)):在期待逗号分隔OBJECT条目 [Source:[email protected]; line:1,column:72]

现在,这让我变成一只可悲的熊猫,因为我无法为了我的生活理解我做错了什么。

任何人都比我的眼睛好和/或头脑更敏锐,看看我的错误?

或者我对这一切都有错?

回答

3

您的JSON无效。这里的id属性的值:

432113085571407872\" 

你看,要么它有一个报价在开始丢失了,或者它有一个报价,不应该在那里结束。

这是错误信息说什么,顺便说一句:

Unexpected character ('"'

+0

该死的,是这么简单?我发誓,我需要新的眼镜。不过谢谢,我会让你的答案是正确的! – ViRALiC