JAVA USES JSON for the data transfer example

  • 2020-05-30 20:18:24
  • OfStack

Recently I have been working on an WEB application based on JAVA Servlet and the corresponding Anroid application client.

Among them, in terms of interface access and data transmission, most of them use JSON object to manipulate and format data: JSON string is used to transfer data on the server side, and JSON is used to parse the received data on the front end of WEB or the client end of Android.

First, using JSON in JAVA requires the introduction of the org.json package and the corresponding JSON class in the program:


import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

Second, in the server-side Servlet class, you can use the following method to collect data and generate the corresponding JSON string


// The statement 1 a Hash Object and add the data 
Map params = new HashMap();

params.put("username", username);
params.put("user_json", user);

// The statement JSONArray Object and enter JSON string 
JSONArray array = JSONArray.fromObject(params);
put.println(array.toString());

In the front end of WEB, javascript can be used to parse JSON string directly. In the client end of Android, JSON class needs to be used to parse strings:


//@description:  Based on what you receive JSON String to parse the data and data objects contained in the string 

// The received JSON string 
String result = "[{\"username\": \"your name\", \"user_json\": {\"username\": \"your name\", \"nickname\": \"your nickname\"}}]";

// Generate from a string JSON object 
JSONArray resultArray = new JSONArray(result);
JSONObject resultObj = resultArray.optJSONObject(0);

// Get data item 
String username = resultObj.getString("username");

// Get data object 
JSONObject user = resultObj.getJSONObject("user_json");
String nickname = user.getString("nickname");

In fact, it mainly involves the conversion between the following centralized data types:

1. Convert String to JSON objects


import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

// Don't forget to add it JSON Package: oh !
public class StringToJSON {
  public static void main(String[] args) throws JSONException{
    
    System.out.println("abc");
    // define JSON string 
    String jsonStr = "{\"id\": 2," + 
        " \"title\": \"json title\", " + 
        "\"config\": {" +
          "\"width\": 34," +
          "\"height\": 35," +
        "}, \"data\": [" +
          "\"JAVA\", \"JavaScript\", \"PHP\"" +
        "]}";
    
    // Converted into JSONObject object 
    JSONObject jsonObj = new JSONObject(jsonStr);
    
    // from JSONObject Gets data from an object 
    JavaBean bean = new JavaBean();
    
    // Get by property name int Type of data ;
    bean.setId(jsonObj.getInt("id"));   
    
    // Get by property name String data ;
    bean.setTitle(jsonObj.getString("title")); 
    
    // Get by property name JSONObject class 
    JSONObject config = jsonObj.getJSONObject("config");
    bean.setWidth(config.getInt("width"));
    bean.setHeight(config.getInt("height"));
    
    // Get by property name JSONArray An array of 
    JSONArray data = jsonObj.getJSONArray("data");
    for(int index = 0, length = data.length(); index < length; index++) {
      // Here in org.json.JSONArray I didn't find it in the object toArray Method, beg each net friend to give solution! 
//      bean.setLanguages(String[]);
    }    
  }
}

class JavaBean{
  private int id ;
  private String title;
  private int width;
  private int height;
  private String[] languages;

    // The setters and accessors are omitted here 
}

2. JSON object is converted to String string


public static void main(String[] args) throws JSONException {
    
    // create JSONObject object 
    JSONObject json = new JSONObject();
    
    // to json Add data in 
    json.put("username", "wanglihong");
    json.put("height", 12.5);
    json.put("age", 24);
    
    // create JSONArray Array, and will json Add to array 
    JSONArray array = new JSONArray();
    array.put(json);
    
    // Convert to a string 
    String jsonStr = array.toString();
    
    System.out.println(jsonStr);
  }

The final output is: [{" username ":" wanglihong ", "height" : 12.5, "age" : 24}]

3. Convert the collection to JSONArray objects


public static void main(String[] args)throws JSONException{
    // Initialize the ArrayList Collect and add data 
    List<String> list = new ArrayList<String>();
    list.add("username");
    list.add("age");
    list.add("sex");
    
    // Initialize the HashMap Collection and add an array 
    Map map = new HashMap();
    map.put("bookname", "CSS3 In actual combat ");
    map.put("price", 69.0);
    
    // Initialize the JSONArray Object and add the data 
    JSONArray array = new JSONArray();
    array.put(list);
    array.put(map);
    
    // The generated JSON The string is: [["username","age","sex"],{"price":69,"bookname":"CSS3 In actual combat "}]
  }

Related articles: