JSON (JavaScript Object Notation) er et lett, tekstbasert, språkuavhengig datautvekslingsformat som er enkelt for mennesker og maskiner å lese og skrive. JSON kan representere to strukturerte typer: objekter og matriser. Et objekt er en uordnet samling av null eller flere navn/verdi-par. En matrise er en ordnet sekvens med null eller flere verdier. Verdiene kan være strenger, tall, booleaner, null og disse to strukturerte typene.
Nedenfor er et enkelt eksempel fra Wikipedia som viser JSON-representasjon av et objekt som beskriver en person. Objektet har strengverdier for fornavn og etternavn, en tallverdi for alder, en objektverdi som representerer personens adresse og en matriseverdi for telefonnummerobjekter.
{ 'firstName': 'John', 'lastName': 'Smith', 'age': 25, 'address': { 'streetAddress': '21 2nd Street', 'city': 'New York', 'state': 'NY', 'postalCode': 10021 }, 'phoneNumbers': [ { 'type': 'home', 'number': '212 555-1234' }, { 'type': 'fax', 'number': '646 555-4567' } ] }> JSON-behandling i Java: Java API for JSON-behandling JSON.simple er et enkelt Java-bibliotek som lar analysere, generere, transformere og spørre JSON.
Starter : Du må laste ned json-simple-1.1 jar og legg den inn i CLASSPATH før du kompilerer og kjører eksempelkodene nedenfor.
- For import av jar i IDE som eclipse, se her .
- Hvis du bruker maven kan du bruke følgende maven-lenke https://mvnrepository.com/artifact/com.googlecode.json-simple/json-simple/1.1.1
Json-Simple API: Den gir objektmodeller for JSON-objekt- og matrisestrukturer. Disse JSON-strukturene er representert som objektmodeller som bruker typer JSONObject og JSONArray . JSONObject gir en Kart visning for å få tilgang til den uordnede samlingen av null eller flere navn/verdi-par fra modellen. På samme måte gir JSONArray en Liste visning for å få tilgang til den bestilte sekvensen med null eller flere verdier fra modellen.
Skriv JSON til en fil
La oss se et eksempel som skriver JSON-data over til en fil JSONExample.json, ved hjelp av JSONObject og JSONArray.
// Java program for write JSON to a file> > import> java.io.FileNotFoundException;> import> java.io.PrintWriter;> import> java.util.LinkedHashMap;> import> java.util.Map;> import> org.json.simple.JSONArray;> import> org.json.simple.JSONObject;> > public> class> JSONWriteExample> {> >public> static> void> main(String[] args)>throws> FileNotFoundException> >{> >// creating JSONObject> >JSONObject jo =>new> JSONObject();> > >// putting data to JSONObject> >jo.put(>'firstName'>,>'John'>);> >jo.put(>'lastName'>,>'Smith'>);> >jo.put(>'age'>,>25>);> > >// for address data, first create LinkedHashMap> >Map m =>new> LinkedHashMap(>4>);> >m.put(>'streetAddress'>,>'21 2nd Street'>);> >m.put(>'city'>,>'New York'>);> >m.put(>'state'>,>'NY'>);> >m.put(>'postalCode'>,>10021>);> > >// putting address to JSONObject> >jo.put(>'address'>, m);> > >// for phone numbers, first create JSONArray> >JSONArray ja =>new> JSONArray();> > >m =>new> LinkedHashMap(>2>);> >m.put(>'type'>,>'home'>);> >m.put(>'number'>,>'212 555-1234'>);> > >// adding map to list> >ja.add(m);> > >m =>new> LinkedHashMap(>2>);> >m.put(>'type'>,>'fax'>);> >m.put(>'number'>,>'212 555-1234'>);> > >// adding map to list> >ja.add(m);> > >// putting phoneNumbers to JSONObject> >jo.put(>'phoneNumbers'>, ja);> > >// writing JSON to file:'JSONExample.json' in cwd> >PrintWriter pw =>new> PrintWriter(>'JSONExample.json'>);> >pw.write(jo.toJSONString());> > >pw.flush();> >pw.close();> >}> }> |
nummer til streng java
>
>
Utdata fra filen JSONExample.json :
{ 'lastName':'Smith', 'address':{ 'streetAddress':'21 2nd Street', 'city':'New York', 'state':'NY', 'postalCode':10021 }, 'age':25, 'phoneNumbers':[ { 'type':'home', 'number':'212 555-1234' }, { 'type':'fax', 'number':'212 555-1234' } ], 'firstName':'John' }> Merk : I JSON er et objekt et uordnet sett med navn/verdi-par, så JSONObject bevarer ikke rekkefølgen til et objekts navn/verdi-par, siden det (per definisjon) ikke er signifikant. Derfor er ikke rekkefølgen bevart i utdatafilen vår.
Les JSON fra en fil
La oss se et eksempel som leser JSON-data ovenfra opprettet fil JSONExample.json ved hjelp av JSONParser, JSONObject og JSONArray.
// Java program to read JSON from a file> > import> java.io.FileReader;> import> java.util.Iterator;> import> java.util.Map;> > import> org.json.simple.JSONArray;> import> org.json.simple.JSONObject;> import> org.json.simple.parser.*;> > public> class> JSONReadExample> {> >public> static> void> main(String[] args)>throws> Exception> >{> >// parsing file 'JSONExample.json'> >Object obj =>new> JSONParser().parse(>new> FileReader(>'JSONExample.json'>));> > >// typecasting obj to JSONObject> >JSONObject jo = (JSONObject) obj;> > >// getting firstName and lastName> >String firstName = (String) jo.get(>'firstName'>);> >String lastName = (String) jo.get(>'lastName'>);> > >System.out.println(firstName);> >System.out.println(lastName);> > >// getting age> >long> age = (>long>) jo.get(>'age'>);> >System.out.println(age);> > >// getting address> >Map address = ((Map)jo.get(>'address'>));> > >// iterating address Map> >Iterator itr1 = address.entrySet().iterator();> >while> (itr1.hasNext()) {> >Map.Entry pair = itr1.next();> >System.out.println(pair.getKey() +>' : '> + pair.getValue());> >}> > >// getting phoneNumbers> >JSONArray ja = (JSONArray) jo.get(>'phoneNumbers'>);> > >// iterating phoneNumbers> >Iterator itr2 = ja.iterator();> > >while> (itr2.hasNext())> >{> >itr1 = ((Map) itr2.next()).entrySet().iterator();> >while> (itr1.hasNext()) {> >Map.Entry pair = itr1.next();> >System.out.println(pair.getKey() +>' : '> + pair.getValue());> >}> >}> >}> }> |
>
>
10 ml til oz
Produksjon:
John Smith 25 streetAddress : 21 2nd Street postalCode : 10021 state : NY city : New York number : 212 555-1234 type : home number : 212 555-1234 type : fax>