Computer >> Máy Tính >  >> Lập trình >> Java

Làm thế nào để hợp nhất hai chuỗi JSON theo một thứ tự bằng cách sử dụng JsonParserSequence trong Java?


JsonParserSequence là một lớp trợ giúp có thể được sử dụng để tạo trình phân tích cú pháp chứa hai trình phân tích cú pháp con được đặt trong trình tự cụ thể. Chúng tôi có thể tạo một chuỗi bằng cách sử dụng static phương thức createFlatzed () của JsonParserSequence lớp học.

Cú pháp

public static JsonParserSequence createFlattened(JsonParser first, JsonParser second)

Ví dụ

import java.io.*;
import com.fasterxml.jackson.core.*;
import com.fasterxml.jackson.core.util.*;
public class JsonParserSequenceTest {
   public static void main(String[] args) throws JsonParseException, IOException {
      String jsonString1 = "{\"id\":\"101\", \"name\":\"Ravi Chandra\", \"address\":\"Pune\"}";
      String jsonString2 = "{\"id\":\"102\", \"name\":\"Raja Ramesh\", \"address\":\"Hyderabad\", \"contacts\":[{\"mobile\":\"9959984805\", \"home\":\"7702144400\"}]}";
      JsonFactory jsonFactory = new JsonFactory();
      JsonParser jsonParser1 = jsonFactory.createParser(jsonString1);
      JsonParser jsonParser2 = jsonFactory.createParser(jsonString2);
      JsonParserSequence jsonParserSequence = JsonParserSequence.createFlattened(jsonParser1, jsonParser2);
      JsonToken jsonToken = jsonParserSequence.nextToken();
         while(jsonToken != null) {
            switch(jsonToken) {
               case FIELD_NAME: System.out.println("Key field: " + jsonParserSequence.getText());
               break;
               case VALUE_FALSE:
               case VALUE_NULL:
               case VALUE_NUMBER_FLOAT:
               case VALUE_NUMBER_INT:
               case VALUE_STRING:
               case VALUE_TRUE: System.out.println("Key value: " + jsonParserSequence.getText());
               break;
            }
            jsonToken = jsonParserSequence.nextToken();
         }
      jsonParserSequence.close();
   }
}

Đầu ra

Key field: id
Key value: 101
Key field: name
Key value: Ravi Chandra
Key field: address
Key value: Pune
Key field: id
Key value: 102
Key field: name
Key value: Raja Ramesh
Key field: address
Key value: Hyderabad
Key field: contacts
Key field: mobile
Key value: 9959984805
Key field: home
Key value: 7702144400