1335 Stimmen

Wie man JSON in Java parst

Ich habe den folgenden JSON-Text. Wie kann ich ihn parsen, um die Werte von pageName , pagePic , post_id usw.?

    {
       "pageInfo": {
             "pageName": "abc",
             "pagePic": "http://example.com/content.jpg"
        },
        "posts": [
             {
                  "post_id": "123456789012_123456789012",
                  "actor_id": "1234567890",
                  "picOfPersonWhoPosted": "http://example.com/photo.jpg",
                  "nameOfPersonWhoPosted": "Jane Doe",
                  "message": "Sounds cool. Can't wait to see it!",
                  "likesCount": "2",
                  "comments": [],
                  "timeOfPost": "1234567890"
             }
        ]
    }

12voto

brainmurphy1 Punkte 1076

Es hat mich umgehauen, wie einfach es war. Sie können einfach eine String hält Ihr JSON an den Konstruktor eines JSONObjects im Standardpaket org.json.

JSONArray rootOfPage =  new JSONArray(JSONString);

Erledigt. Drops Mikrofon . Dies funktioniert mit JSONObjects auch. Danach können Sie einfach durch Ihre Hierarchie von Objects unter Verwendung der get() Methoden für Ihre Objekte.

12voto

Slava Vedenin Punkte 54320

Zusätzlich zu den anderen Antworten empfehle ich diesen Online-Open-Source-Dienst jsonschema2pojo.org für die schnelle Generierung von Java-Klassen aus json oder json schema für GSON, Jackson 1.x oder Jackson 2.x. Zum Beispiel, wenn Sie haben:

{
   "pageInfo": {
         "pageName": "abc",
         "pagePic": "http://example.com/content.jpg"
    }
    "posts": [
         {
              "post_id": "123456789012_123456789012",
              "actor_id": 1234567890,
              "picOfPersonWhoPosted": "http://example.com/photo.jpg",
              "nameOfPersonWhoPosted": "Jane Doe",
              "message": "Sounds cool. Can't wait to see it!",
              "likesCount": 2,
              "comments": [],
              "timeOfPost": 1234567890
         }
    ]
}

Les jsonschema2pojo.org für GSON erzeugt:

@Generated("org.jsonschema2pojo")
public class Container {
    @SerializedName("pageInfo")
    @Expose
    public PageInfo pageInfo;
    @SerializedName("posts")
    @Expose
    public List<Post> posts = new ArrayList<Post>();
}

@Generated("org.jsonschema2pojo")
public class PageInfo {
    @SerializedName("pageName")
    @Expose
    public String pageName;
    @SerializedName("pagePic")
    @Expose
    public String pagePic;
}

@Generated("org.jsonschema2pojo")
public class Post {
    @SerializedName("post_id")
    @Expose
    public String postId;
    @SerializedName("actor_id")
    @Expose
    public long actorId;
    @SerializedName("picOfPersonWhoPosted")
    @Expose
    public String picOfPersonWhoPosted;
    @SerializedName("nameOfPersonWhoPosted")
    @Expose
    public String nameOfPersonWhoPosted;
    @SerializedName("message")
    @Expose
    public String message;
    @SerializedName("likesCount")
    @Expose
    public long likesCount;
    @SerializedName("comments")
    @Expose
    public List<Object> comments = new ArrayList<Object>();
    @SerializedName("timeOfPost")
    @Expose
    public long timeOfPost;
}

9voto

lalitbhagtani Punkte 449

Es gibt viele Open-Source-Bibliotheken, um JSON-Inhalte in ein Objekt zu parsen oder JSON-Werte einfach zu lesen. Ihre Anforderung ist nur, Werte zu lesen und sie in ein benutzerdefiniertes Objekt zu parsen. So org.json Bibliothek ist genug in Ihrem Fall.

Verwenden Sie die org.json-Bibliothek, um sie zu parsen und ein JsonObject zu erstellen:

JSONObject jsonObj = new JSONObject(<jsonStr>);

Verwenden Sie nun dieses Objekt, um Ihre Werte zu erhalten:

String id = jsonObj.getString("pageInfo");

Ein vollständiges Beispiel können Sie hier sehen:

Wie man JSON in Java parst

9voto

venkat Punkte 431

Gson ist einfach zu erlernen und zu implementieren. Was wir wissen müssen, sind die folgenden zwei Methoden

  • toJson() - Java-Objekt in JSON-Format umwandeln

  • fromJson() - JSON in Java-Objekt umwandeln

`

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import com.google.gson.Gson;

public class GsonExample {
    public static void main(String[] args) {

    Gson gson = new Gson();

    try {

        BufferedReader br = new BufferedReader(
            new FileReader("c:\\file.json"));

        //convert the json string back to object
        DataObject obj = gson.fromJson(br, DataObject.class);

        System.out.println(obj);

    } catch (IOException e) {
        e.printStackTrace();
    }

    }
}

`

7voto

sumit kumar Punkte 564

Lesen Sie den folgenden Blogbeitrag, JSON in Java .

Dieser Beitrag ist zwar schon etwas älter, aber dennoch möchte ich Ihre Frage beantworten.

Schritt 1: Erstellen Sie eine POJO-Klasse für Ihre Daten.

Schritt 2: Erstellen Sie nun ein Objekt mit JSON.

Employee employee = null;
ObjectMapper mapper = new ObjectMapper();
try {
    employee =  mapper.readValue(newFile("/home/sumit/employee.json"), Employee.class);
} 
catch(JsonGenerationException e) {
    e.printStackTrace();
}

Weitere Informationen finden Sie in den folgenden Dokumenten Link .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X