آموزش (Parse) تجزیه Json در جاوا
سلام دوستان در این سری از آموزش برنامه نویسی جاوا به آموزش (Parse) تجزیه Json در جاوا می پردازیم آموزش های مختلفی در رابطه با Json (جی سان) در سایت قرار دارد برای اینکه یک Json را تجزیه یا Parse کنیم از یک کتاب خانه برای Parse استفاده می کنیم در ادامه با ما همراه باشید تا آموزش (Parse) تجزیه Json در جاوا را یاد گیرید.
اگر نمیدانید Json چیست و اصلا تجزیه Json به چه کاری می آید از لینک زیر استفاده کنید
json چیست ؟
همانطور که در بالا گفتم برای (Parse) تجزیه Json در جاوا از یک کتاب خانه به نام json-simple استفاده می کنیم.
برای اینکه یک کتاب خانه را به پروژه اضافه کنید باید از آموزش زیر استفاده کنید.
آموزش افزودن کتاب خانه در intellij idea
شما باید کتاب خانه زیر را توسط آموزش قبلی که لینکش را براتون قرار دادم به پروژه اضافه کنید.
1 2 3 4 5 | <dependency> <groupId>com.googlecode.json-simple</groupId> <artifactId>json-simple</artifactId> <version>1.1</version> </dependency> |
بعد از اینکه کتاب خانه را به پروژه اضافه کردید باید یک فایل json در desktop خود ایجاد کنید ما نام فایل را برابر با jsonTestFile.json قرار دادیم کد زیر را ذخیره و در یک مسیر خاص قرار دهید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | { "id": 1, "firstname": "MohammadHossein", "languages": [ { "lang": "En", "knowledge": "proficient" }, { "lang": "Fa", "knowledge": "advanced" } ], "job": { "site": "www.programchi.ir", "name": "Programchi" } } |
در بالا یکسری object و یکسری array داریم که آنها را در ادامه پارس (parse) یا تجزیه می کنیم.
یک کلاس به نام JsonParseTest ایجاد کنید و کدهای زیر را در آن قرار دهید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | package ir.programchi.parsejson; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.Iterator; import org.json.simple.JSONArray; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; import org.json.simple.parser.ParseException; public class JsonParseTest { private static final String filePath = "C:\\Users\\Jfp\\Desktop\\jsonTestFile.json"; public static void main(String[] args) { try { FileReader reader = new FileReader(filePath); JSONParser jsonParser = new JSONParser(); JSONObject jsonObject = (JSONObject) jsonParser.parse(reader); String firstName = (String) jsonObject.get("firstname"); System.out.println("The first name is: " + firstName); long id = (long) jsonObject.get("id"); System.out.println("The id is: " + id); JSONArray lang= (JSONArray) jsonObject.get("languages"); for(int i=0; i<lang.size(); i++){ System.out.println("The " + i + " element of the array: "+lang.get(i)); } Iterator i = lang.iterator(); while (i.hasNext()) { JSONObject innerObj = (JSONObject) i.next(); System.out.println("language "+ innerObj.get("lang") + " with level " + innerObj.get("knowledge")); } JSONObject structure = (JSONObject) jsonObject.get("job"); System.out.println("Into job structure, name: " + structure.get("name")); } catch (FileNotFoundException ex) { ex.printStackTrace(); } catch (IOException ex) { ex.printStackTrace(); } catch (ParseException ex) { ex.printStackTrace(); } catch (NullPointerException ex) { ex.printStackTrace(); } } } |
در بالا filePath مسیر اصلی json را باید در آن قرار دهید بعد از اینکار ما با استفاده از FileReader محتویات فایل را می خوانیم سپس یک شئی از JsonParser ایجاد می کنیم بعد از اینکار یک JsonObject ایجاد می کنیم تا Json را تجزیه کنیم در json یک آرایه وجود دارد برای همین منظور یک JSONArray نیز ایجاد می کنیم تا array ها را تجزیه کنیم.
خروجی کد بالا همانند زیر خواهد بود.
1 2 3 4 5 6 7 | The first name is: MohammadHossein The id is: 1 The 0 element of the array: {"knowledge":"proficient","lang":"En"} The 1 element of the array: {"knowledge":"advanced","lang":"Fa"} language en with level proficient language fr with level advanced Into job structure, name: Programchi |