:(
This commit is contained in:
@@ -0,0 +1,160 @@
|
||||
package jason;
|
||||
import java.io.StringReader;
|
||||
import java.io.StringWriter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import jakarta.json.Json;
|
||||
import jakarta.json.JsonArray;
|
||||
import jakarta.json.JsonArrayBuilder;
|
||||
import jakarta.json.JsonObject;
|
||||
import jakarta.json.JsonObjectBuilder;
|
||||
import jakarta.json.JsonReader;
|
||||
import jakarta.json.JsonValue;
|
||||
import jakarta.json.JsonWriter;
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.PrintWriter;
|
||||
import java.util.Scanner;
|
||||
|
||||
public class JsonSupplier {
|
||||
/**
|
||||
* Creates a JsonObject by traversing the arrayList of LinkedHashMap
|
||||
*
|
||||
* @param suppliers ArrayList of LinkedHashMap. Each element of the
|
||||
* arrayList is a row of suppliers table. The key of the LinkedHashMap is
|
||||
* the attribute name and the value of the attribute Example ( One liked
|
||||
* hash map is one row from the table) LinkedHashMap 1 : key: snumber,
|
||||
* value: s1 key: sname, value: white key: status, value: 20 key: city,
|
||||
* value London LinkedHashMap 2 : key: snumber, value: s2 key: sname, value:
|
||||
* black key: status, value: 30 key: city, value Paris The value of the map
|
||||
* @return JsonObject
|
||||
*/
|
||||
public static JsonObject createJsonObjectForSuppliers(ArrayList< LinkedHashMap<String, String>> suppliers) {
|
||||
JsonObjectBuilder jsonBuilder = Json.createObjectBuilder();
|
||||
int counter = 1;
|
||||
for (LinkedHashMap<String, String> supplier : suppliers)
|
||||
{
|
||||
// create an array of key-value pairs
|
||||
JsonArrayBuilder arraySupplierBld = Json.createArrayBuilder();
|
||||
// create each key-value pair as seperate object and add it to the array
|
||||
Set<Map.Entry<String, String>> entrySet = supplier.entrySet();
|
||||
for (Map.Entry<String, String> entry : entrySet)
|
||||
{
|
||||
arraySupplierBld.add(Json.createObjectBuilder().add(entry.getKey(),
|
||||
entry.getValue()).build());
|
||||
}
|
||||
// add supplier-array to object
|
||||
String objectID = "+" + (counter++);
|
||||
jsonBuilder.add(objectID, arraySupplierBld);
|
||||
}
|
||||
|
||||
JsonObject allSuppliersJsonObject = jsonBuilder.build();
|
||||
return allSuppliersJsonObject;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a JsonObject by reading the String data in JSON format
|
||||
*
|
||||
* @param jsonData Json format data
|
||||
* @return JsonObject
|
||||
*/
|
||||
public static JsonObject createJsonObjectFromString(String jsonData) {
|
||||
JsonReader jsonReader = Json.createReader(new StringReader(jsonData));
|
||||
JsonObject o = jsonReader.readObject();
|
||||
return o;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a LinkedHashMap of 4 ENTRYies.Keys name: snumber, sname, status
|
||||
* and city. Values of map are the parameters.
|
||||
*
|
||||
* @param snumber value of map
|
||||
* @param sname value of map
|
||||
* @param status value of map
|
||||
* @param city value of map
|
||||
* @return
|
||||
*/
|
||||
public static LinkedHashMap<String, String> createMapOfSupplier(
|
||||
String snumber,
|
||||
String sname,
|
||||
String status,
|
||||
String city
|
||||
)
|
||||
{
|
||||
LinkedHashMap<String, String> mapSupplier
|
||||
= new LinkedHashMap<String, String>();
|
||||
mapSupplier.put("snumber", snumber);
|
||||
mapSupplier.put("sname", sname);
|
||||
mapSupplier.put("status", status);
|
||||
mapSupplier.put("city", city);
|
||||
|
||||
return mapSupplier;
|
||||
}
|
||||
|
||||
public static String getSuppliersJsonObject(){
|
||||
ArrayList< LinkedHashMap<String, String>> suppliers = new ArrayList();
|
||||
for (int i = 1; i <= 2; ++i)
|
||||
{
|
||||
LinkedHashMap<String, String> oneSupplierRowOfTable
|
||||
= createMapOfSupplier(
|
||||
"s1" + i,
|
||||
"Johnson" + i,
|
||||
Integer.toString(20 + i),
|
||||
"london" + i);
|
||||
suppliers.add(oneSupplierRowOfTable);
|
||||
}
|
||||
|
||||
JsonObject j = createJsonObjectForSuppliers(suppliers);
|
||||
return j.toString();
|
||||
}
|
||||
|
||||
public static void main(String a[]) {
|
||||
ArrayList< LinkedHashMap<String, String>> suppliers = new ArrayList<>();
|
||||
for (int i = 1; i <= 2; ++i)
|
||||
{
|
||||
LinkedHashMap<String, String> oneSupplierRowOfTable
|
||||
= createMapOfSupplier(
|
||||
"s1" + i,
|
||||
"Johnson" + i,
|
||||
Integer.toString(20 + i),
|
||||
"london" + i);
|
||||
suppliers.add(oneSupplierRowOfTable);
|
||||
}
|
||||
|
||||
JsonObject j = createJsonObjectForSuppliers(suppliers);
|
||||
|
||||
StringWriter strWtr = new StringWriter();
|
||||
JsonWriter jsonWtr = Json.createWriter(strWtr);
|
||||
jsonWtr.writeObject(j);
|
||||
String s = strWtr.toString();
|
||||
System.out.println(s);
|
||||
jsonWtr.close();
|
||||
/*
|
||||
JSONobj.readJASONdataUsingParser(strWtr.toString());
|
||||
|
||||
JsonObject o = createJsonObjectFromString(strWtr.toString());
|
||||
System.out.println("------------------------------------------------");
|
||||
JSONobj.writeObjectModelToStream(o);
|
||||
*/
|
||||
}
|
||||
public static void writeJsonToTextFile(JsonObject jo) throws FileNotFoundException {
|
||||
String jsonString = Jason.getJsonString(jo);
|
||||
PrintWriter output = new PrintWriter(new FileOutputStream("jason.json", true));
|
||||
output.print(jsonString);
|
||||
output.close();
|
||||
}
|
||||
public static JsonObject readFileIntoJson(String fileName) throws FileNotFoundException {
|
||||
File file = new java.io.File(fileName);
|
||||
Scanner input = new Scanner(file);
|
||||
String joString = "";
|
||||
while (!input.hasNext()) {
|
||||
joString += input.next();
|
||||
}
|
||||
input.close();
|
||||
JsonObject jo = createJsonObjectFromString(joString);
|
||||
return jo;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user