Jackson Fehlermeldung "ungültiges Zeichen... nur reguläre Leerzeichen erlaubt" beim Parsen des JSON

Ich versuche zum abrufen von JSON-Daten aus einer URL bekomme aber die folgende Fehlermeldung:

Illegal character ((CTRL-CHAR, code 31)):
only regular white space (\r, \n,\t) is allowed between tokens

Mein code:

final URI uri = new URIBuilder(UrlConstants.SEARCH_URL)
      .addParameter("keywords", searchTerm)
      .addParameter("count", "50")
      .build();
  node = new ObjectMapper().readTree(new URL(uri.toString())); <<<<< THROWS THE ERROR

Die url gebaut ist ich.e https://www.example.org/api/search.json?keywords=iphone&count=50

Was läuft hier falsch? Und wie kann ich analysieren diese Daten erfolgreich?


Importe:

import com.google.appengine.repackaged.org.codehaus.jackson.JsonNode;
import com.google.appengine.repackaged.org.codehaus.jackson.map.ObjectMapper;
import com.google.appengine.repackaged.org.codehaus.jackson.node.ArrayNode;
import org.apache.http.client.utils.URIBuilder;

Beispiel Antwort

{
    meta: {
        indexAllowed: false
    },
    products: {
        products: [ 
            {
                id: 1,
                name: "Apple iPhone 6 16GB 4G LTE GSM Factory Unlocked"
            },
            {
                id: 2,
                name: "Apple iPhone 7 8GB 4G LTE GSM Factory Unlocked"
            }
        ]
    }
}
  • könnte, fügen Sie die JSON-Rückgabe durch URL-analysiert werden?
  • Nur ein Hinweis: Bitte verwenden Sie immer example.org oder example.com zum Beispiel domain-Namen. Wenn Sie eine Domäne ist, wird möglicherweise Probleme verursachen für jeden, der passiert, um es zu besitzen. Siehe example.com auf Wikipedia.
  • emaple Antwort Hinzugefügt
  • Das problem ist wahrscheinlich eine unsichtbare Zeichen in der Antwort. Könntest du ein hexdump der Antwort? Zum Beispiel auf Linux oder mit cygwin auf Windows ausführen: curl http://example.org/my-rest-url |hexdump -C .
  • Hi @sleske, ich rollte die URL und eine Antwort erhalten...dann Lauf ich die JSON-durch JSLint und get 'Gültiges JSON'
  • Nun, wie spielt das eine Rolle? JSLint ist für die überprüfung JavsScript nicht für JSON. Die beiden sind Verschieden (obwohl Sie ähnlich Aussehen). Jedenfalls, einige checking-tools können toleranter sein, als Jackson, also auch, wenn ein checker findet die JSON-ok, das mag nicht. Also, postet bitte den hexdump als ich schrieb, sonst bekommen wir nichts...

InformationsquelleAutor rogger2016 | 2017-03-06
Schreibe einen Kommentar