Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

JSONParser returns Unexpected character () at position 0

I'm with problem to parse a JSON. Always that I try do it, the follow was result is returned: Unexpected character () at position 0.

public Object execute(HttpRequestBase request){
    DefaultHttpClient client = new DefaultHttpClient();
    HttpResponse response = null;
    Object object = null;

    try {
        response = client.execute(request);
        InputStream is = response.getEntity().getContent();
        BufferedReader br = new BufferedReader(new InputStreamReader((is)));
        StringBuilder builder = new StringBuilder();
        String output;

        while ((output = br.readLine()) != null) {
            builder.append(output).append("\n");    
        }

         if (response.getStatusLine().getStatusCode() == 200) { 
            object = new JSONParser().parse(builder.toString());
            client.getConnectionManager().shutdown();
        } else {
             LOG.log(Level.SEVERE, builder.toString());
             throw new RuntimeException(builder.toString());
         }

    } catch (IOException | ParseException ex) {
        LOG.log(Level.SEVERE, ex.toString());
    } finally {

    }

    return object;
}

PS:

  1. My response returns a JSON well formatted;
  2. The problem happens when this piece of code is running object = new JSONParser().parse(builder.toString());

The is part o my JSON file:

    [
   {
      "id":2115,
      "identificacao":"17\/2454634-6",
      "ultima_atualizacao":null
   },
   {
      "id":2251,
      "identificacao":"17\/3052383-2",
      "ultima_atualizacao":"2017-11-21"
   },
   {
      "id":2258,
      "identificacao":"17\/3070024-6",
      "ultima_atualizacao":null
   },
   {
      "id":2257,
      "identificacao":"17\/3070453-5",
      "ultima_atualizacao":null
   }
]
like image 650
All Pereira Avatar asked Oct 21 '25 04:10

All Pereira


1 Answers

It is happening because of UTF-8 BOM. What is UTF-8 BOM ? The UTF-8 BOM is a sequence of bytes (EF BB BF) that allows the reader to identify a file as being encoded in UTF-8.

Normally, the BOM is used to signal the endianness of an encoding, but since endianness is irrelevant to UTF-8, the BOM is unnecessary.

How to solve the issue ? Convert encoding of your .json or any file to UTF-8 instead of UTF-8 BOM. Like this.

enter image description here

like image 62
Om Sao Avatar answered Oct 23 '25 18:10

Om Sao



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!