-->

[Java] / [자바]

String을 Json객체로 형변환하기

 

* 목표 : org.json.simple.JSONObject를 이용해 String 타입에서 Json객체로 변환해보자

 

서버랑 통신 할 때 에러로그를 String 값을 보내주는데 App쪽에서 Json객체로 만들어 이용하려고 한다.

다양한 방법이 있지만 그중에 간단하게 사용할 수 있는 방법을 소개한다.

import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;

private string2json(){
                    String strTest = "{\n" +
                            "\n" +
                            "    \"relationInfos\": null,\n" +
                            "\n" +
                            "    \"exceptionAprvs\": null,\n" +
                            "\n" +
                            "    \"groupApplication\": [\n" +
                            "\n" +
                            "        {\n" +
                            "\n" +
                            "            \"addr\": \"\",\n" +
                            "\n" +
                            "            \"applicationDate\": \"2021-01-11\",\n" +
                            "\n" +
                            "            \"createDatetime\": \"Jan 11, 2021 6:40:59 PM\",\n" +
                            "\n" +
                            "            \"createUserId\": \"ming92\",\n" +
                            "\n" +
                            "            \"customerNo\": \"20210000234\",\n" +
                            "\n" +
                            "            \"fatherName\": \"\",\n" +
                            "\n" +
                            "            \"groupAplcNo\": \"30ming9220210111001\",\n" +
                            "\n" +
                            "            \"inCharge\": \"\",\n" +
                            "\n" +
                            "            \"leaderName\": \"test5\",\n" +
                            "\n" +
                            "            \"mngtBranchCode\": \"1000\",\n" +
                            "\n" +
                            "            \"mngtUserId\": \"ming92\",\n" +
                            "\n" +
                            "            \"openBranchCode\": \"1000\",\n" +
                            "\n" +
                            "            \"openUserId\": \"ming92\",\n" +
                            "\n" +
                            "            \"productType\": \"30\",\n" +
                            "\n" +
                            "            \"residentRgstId\": \"14/LaPaTa(N)111111\",\n" +
                            "\n" +
                            "            \"serialNo\": 3.0,\n" +
                            "\n" +
                            "            \"statusCode\": \"01\",\n" +
                            "\n" +
                            "            \"tabletSyncSts\": \"00\",\n" +
                            "\n" +
                            "            \"townshipName\": \"\",\n" +
                            "\n" +
                            "            \"updateDatetime\": \"Jan 11, 2021 6:40:59 PM\",\n" +
                            "\n" +
                            "            \"updateUserId\": \"ming92\"\n" +
                            "\n" +
                            "        }\n" +
                            "\n" +
                            "    ],\n" +
                            "\n" +
                            "    \"areaEvaluations\": null,\n" +
                            "\n" +
                            "    \"guarantees\": null,\n" +
                            "\n" +
                            "    \"individualApplications\": [\n" +
                            "\n" +
                            "        {\n" +
                            "\n" +
                            "            \"addr\": \"\",\n" +
                            "\n" +
                            "            \"applicationAmt\": 500.0,\n" +
                            "\n" +
                            "            \"applicationDate\": \"2021-01-11\",\n" +
                            "\n" +
                            "            \"applicationNo\": \"10ming9220210111002\",\n" +
                            "\n" +

                            "\n" +
                            "            \"errMsg\": \"10ming9220210111002 : 오류: 중복된 키 값이 \\\"m3t_application_application_no_idx\\\" 고유 제약 조건을 위반함\\n  Detail: (application_no)=(10ming9220210111002) 키가 이미 있습니다.\"\n" +
                            "\n" +
                            "        }\n" +
                            "\n" +
                            "    ]\n" +
                            "\n" +
                            "}";
                            
                            
                    JSONParser parser = new JSONParser();
                    Object obj = null;
                    try {
                        obj = parser.parse( strTest );
                        Log.e(TAG, "obj : " + obj);
                    } catch (ParseException e) {
                        e.printStackTrace();
                    }

                    org.json.simple.JSONObject jsonObject = (org.json.simple.JSONObject) obj;

                    Log.e(TAG, "jsonObject : " + jsonObject);
                    
                    }

 

JSONParser parser = new JSONParser();
Object obj = parser.parse( jsonStr );
JSONObject jsonObj = (JSONObject) obj;

String code = (String) jsonObj.get("code");
String name = (String) jsonObj.get("name");

 

+ Recent posts