자바 에서 JSONobject 를 HashMap 으로 변환(방법+main 방법 호출 인 스 턴 스)

1.우선 json 관련 jar 패키지 가 져 오기
도입 한 jar 패키지:
(버 전 자체 정의,사용자 수가 많은 버 전 을 선택 할 수 있어 안정 적 입 니 다)
commons-beanutils-1.9.2.jar
commons-collections-3.2.1.jar
commons-lang-2.6.jar
commons-logging-1.2.jar
ezmorph-1.0.6.jar
json-lib-2.4-jdk15.jar
jar 패키지 의 다운 로드 는 아래 사이트 에서 검색 할 수 있 습 니 다:
https://mvnrepository.com/
在这里插入图片描述
2.이 클립 스 아래(IntelliJ IDEA 또는 MyEclipse 일 수도 있 음)
새 패키지 와 Class(단 계 를 생략 하고 이름 을 스스로 선택 할 수 있 습 니 다)는 jsonTest 를 사용 합 니 다.
다음 코드 블록 방법 은 설명 을 보십시오.JSONobject 를 HashMap 으로 변환 하 는 주요 한 방법 입 니 다.매개 변 수 는 JSONobject 대상 이 고 반환 값 은 HashMap 입 니 다.

//1.JSONObjectο DQHashMap<String,String>
public static HashMap<String, String> JsonObjectToHashMap(JSONObject jsonObj){
	HashMap<String, String> data = new HashMap<String, String>(); 
	Iterator it = jsonObj.keys();
	while(it.hasNext()){
		String key = String.valueOf(it.next().toString());
		String value = (String)jsonObj.get(key).toString();
		data.put(key, value);
	}
	System.out.println(data);
	return data;
}
이 방법 은 JSON 문자열 을 HashMap 으로 변환 하여 json 형식의 문자열 로 인 자 를 전송 하고 HashMap 을 반환 하 는 것 입 니 다.

//2. json      HashMap<String,String>
public static HashMap<String, String> JsonToHashMap(String JsonStrin){	
	HashMap<String, String> data = new HashMap<String, String>(); 
	try{
	  //  json      jsonObject 
	  JSONObject jsonObject = JSONObject.fromObject(JsonStrin); 
	  @SuppressWarnings("rawtypes")
		Iterator it = jsonObject.keys();
	  //   jsonObject  ,   Map   
	  while (it.hasNext()) 
	  {
	  	String key = String.valueOf(it.next()).toString(); 
	    String value = (String) jsonObject.get(key).toString();  
	    data.put(key, value); 
	  } 
	}catch (Exception e) {
		e.printStackTrace();
		//JOptionPane.showMessageDialog(null,"ERROR:["+e+"]");
	}
	System.out.println(data);
	return data; 	
}	
여기 서 Iterator 류(교체 기)도 소개 해 드 리 겠 습 니 다.
교체 기 는 일종 의 디자인 모델 로 하나의 대상 으로 서열 중의 대상 을 옮 겨 다 니 며 선택 할 수 있 으 며 개발 자 는 이 서열 의 바 텀 구 조 를 이해 할 필요 가 없다.교체 기 는 일반적으로 경량급 대상 이 라 고 불 린 다.왜냐하면 그것 을 만 드 는 대가 가 적기 때문이다.
자바 의 Iterator 기능 은 간단 하고 단 방향 으로 만 이동 할 수 있 습 니 다.
(1)사용 방법 iterator()는 용기 에 Iterator 를 되 돌려 달라 고 요구 합 니 다.Iterator 의 next()방법 을 처음 호출 했 을 때 시퀀스 의 첫 번 째 요 소 를 되 돌려 줍 니 다.메모:iterator()방법 은 java.lang.iterable 인터페이스 로 Collection 에 계승 되 었 습 니 다.
(2)next()를 사용 하여 시퀀스 의 다음 요 소 를 얻 습 니 다.
(3)hasNext()를 사용 하여 시퀀스 에 요소 가 있 는 지 확인 합 니 다.
(4)reove()를 사용 하여 교체 기 가 새로 돌아 온 요 소 를 삭제 합 니 다.
Iterator 는 자바 교체 기 가 가장 간단 한 실현 으로 List 를 위 한 ListIterator 는 더 많은 기능 을 가지 고 있 으 며,두 방향 으로 List 를 옮 겨 다 닐 수도 있 고,List 에서 요 소 를 삽입 하고 삭제 할 수도 있다.
3.코드 바로 올 리 기

package JSON;

import java.util.HashMap;
import java.util.Iterator;
import net.sf.json.JSONObject;

public class JsonTest {

	public static void main(String[] args) {
		JSONObject jsonObj = new JSONObject(true);
		String content1 = "aaaaa";
		String content2 = "bbbbb";
		String content3 = "ccccc";
		jsonObj.put("a", content1);
		jsonObj.put("b", content2);
		jsonObj.put("c", content3);
		System.out.println(jsonObj.toString());
		JsonObjectToHashMap(jsonObj);
		String jsonstr = "{name:'  ',sex:' ',school:'          '}";
		JsonToHashMap(jsonstr);
	}
	
	//1.JSONObjectο DQHashMap<String,String>
	public static HashMap<String, String> JsonObjectToHashMap(JSONObject jsonObj){
		HashMap<String, String> data = new HashMap<String, String>(); 
		Iterator it = jsonObj.keys();
		while(it.hasNext()){
			String key = String.valueOf(it.next().toString());
			String value = (String)jsonObj.get(key).toString();
			data.put(key, value);
		}
		System.out.println(data);
		return data;
	}
	//2. json      HashMap<String,String>
	public static HashMap<String, String> JsonToHashMap(String JsonStrin){	
		HashMap<String, String> data = new HashMap<String, String>(); 
		try{
		  //  json      jsonObject 
		  JSONObject jsonObject = JSONObject.fromObject(JsonStrin); 
		  @SuppressWarnings("rawtypes")
			Iterator it = jsonObject.keys();
		  //   jsonObject  ,   Map   
		  while (it.hasNext()) 
		  {
		  	String key = String.valueOf(it.next()).toString(); 
		    String value = (String) jsonObject.get(key).toString();  
		    data.put(key, value); 
		  } 
		}catch (Exception e) {
			e.printStackTrace();
			//JOptionPane.showMessageDialog(null,"ERROR:["+e+"]");
		}
		System.out.println(data);
		return data; 	
	}	

}

자신의 package 이름과 class 이름 을 수정 하 는 것 을 기억 하 세 요.
4.main 방법 테스트 호출
(1)들 어 오 는 매개 변 수 는 JSONobject 입 니 다.
在这里插入图片描述
출력 결 과 는:
在这里插入图片描述
(2)JSON 문자열 로 전 송 된 인자:
在这里插入图片描述
출력 결 과 는:
在这里插入图片描述
출력 된 매개 변수 순서 가 들 어 올 때 와 정반 대 임 을 알 수 있 습 니 다.그러나 출력 형식 은 HashMap 이 고 데이터 저장 형식 은 key-value 키 쌍 의 형식 으로 HashMap 에 저 장 됩 니 다.키 값 을 가 져 와 서 대응 하 는 value 를 가 져 올 수 있 습 니 다.
다음 코드 를 main 방법 맨 뒤에 추가 합 니 다:

System.out.println("");//    
//     key  ,  value
HashMap<String,String> hashmap = JsonToHashMap(jsonstr);
System.out.println("--------    HashMap   :-------");
System.out.println("name:"+hashmap.get("name")+",sex:"+
hashmap.get("sex")+",school:"+hashmap.get("school"));
다음 과 같은 결 과 를 얻 었 습 니 다.
在这里插入图片描述
결어:
이 기본 적 인 방법 은 JSONobject 라 는 대상 의 from Object()방법 에 의 한 것 입 니 다.from Object()방법 은 변환 할 수 있 는 유형 이 많 습 니 다.map,list,배열 등 이 있 습 니 다.자신의 프로젝트 에 사용 할 때 bean 이나 model 등 사용자 정의 클래스 일 수 있 습 니 다.

1. List     json  
List list = new ArrayList();
list.add( "first" );
list.add( "second" );
JSONArray jsonArray2 = JSONArray.fromObject( list );

2. Map     json  
Map map = new HashMap();
map.put("name", "json");
map.put("bool", Boolean.TRUE);
map.put("int", new Integer(1));
map.put("arr", new String[] { "a", "b" });
map.put("func", "function(i){ return this.arr[i]; }");
JSONObject json = JSONObject.fromObject(map);

3. Bean   json  
JSONObject jsonObject = JSONObject.fromObject(new JsonBean());

4.      json  
boolean[] boolArray = new boolean[] { true, false, true };
JSONArray jsonArray1 = JSONArray.fromObject(boolArray);
상기 유형 은 모두 from Object()방법 을 빌려 JSONobject 형식 인 스 턴 스 로 변환 할 수 있 습 니 다.
json 은 경량급 데이터 형식 으로서 앞 뒤 데이터 가 상호작용 할 때 흔히 볼 수 있 고 모든 회사 가 자신의 JSON 변환 방법 을 가지 고 회사 에서 흔히 볼 수 있 는 도구 류 입 니 다.
이후 의 개발 과 사용 을 편리 하 게 하 였 다.
자바 에서 JSONobject 가 HashMap(방법+main 방법 호출 인 스 턴 스)로 전환 되 는 것 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 JSONobject 가 HashMap 으로 전환 되 는 내용 은 예전 의 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 도 많은 관심 부탁드립니다!

좋은 웹페이지 즐겨찾기