JSONParser.parse()错误

时间:2014-11-08 10:46:40

标签: json parsing json-simple

我一直在解析我的JSON文件错误

输入

{" continent":" South America"," recentJobRank":717," latitude":" -34.6037232& #34;" lastSeenDate":" 2012年11月23日""开始":" Inmediato"" contactPerson&# 34;:" Alejandra Perez"," lastJobRank":2," title":" Encimador"," salary" :" Convenio"," jobtype":" Tiempo Completo"," url":" http://www.computrabajo。 com.ar/bt-ofrd-deglay-7148.htm","postedDate":"2012-11-21","duration":&# 34; Indeterminada"," firstSeenDate":" 2012-11-23"," phoneNumber":" 011 4648-0226 RRHH" ," faxNumber":" 011 4648-0226"," location":" Buenos Aires,Argentina"," company&#34 ;:" Deglay SRL"," id":" 34076"," department":" Buenos Aires", "类别":"其他","应用程序":"电子邮件o comunicandose a los telefonos","经度&# 34;:" -58。 3815931"}

以下是我收到的例外

异常

位置457处的意外字符(J)。 在addfields中捕获异常     在org.json.simple.parser.Yylex.yylex(Yylex.java:610)     在org.json.simple.parser.JSONParser.nextToken(JSONParser.java:269)

我试过在Validator上检查我的json。看起来很好。 我正在制造任何明显的错误?

1 个答案:

答案 0 :(得分:0)

JSON绝对正确,因为JSON.parse()接受它。 我无法使用json-simple库重现您的错误。我下载了每个可用版本here,复制粘贴了您的JSON字符串并将其传递给 JSONParser.parse(),并且在任何版本中都没有出错。

这是我的设置:

public static void main(String[] args)  {
    try {
      StringReader x = new StringReader("{\"continent\":\"South America\",\"recentJobRank\":717,\"latitude\":\"-34.6037232\",\"lastSeenDate\":\"2012-11-23\",\"start\":\"Inmediato\",\"contactPerson\":\"Alejandra Perez\",\"lastJobRank\":2,\"title\":\"Encimador\",\"salary\":\"Convenio\",\"jobtype\":\"Tiempo Completo\",\"url\":\"http://www.computrabajo.com.ar/bt-ofrd-deglay-7148.htm\",\"postedDate\":\"2012-11-21\",\"duration\":\"Indeterminada\",\"firstSeenDate\":\"2012-11-23\",\"phoneNumber\":\"011 4648-0226 RRHH\",\"faxNumber\":\"011 4648-0226\",\"location\":\"Buenos Aires, Argentina\",\"company\":\"Deglay S.R.L.\",\"id\":\"34076\",\"department\":\"Buenos Aires\",\"category\":\"others\",\"applications\":\"Por e-mail o comunicandose a los telefonos\",\"longitude\":\"-58.3815931\"}");
      new JSONParser().parse(x);
    } catch(Exception e) {
       System.out.println("Error: " + e);
    }

    System.out.println("Success");    
}

所以我假设您的JSON和库都没有错。我的猜测是你的JSON字符串的编码,因为错误信息是

  

位置457处的意外字符(J)。

并且靠近此位置的地方没有 J 。因此,您收到的JSON是以某种方式编码的,SimpleJSON无法正确解析,或者数据无法完全/正确传输。

也许它可以帮助告诉你,从哪里获得JSON以及如何将它传递给JSONParser.parse()。