자바 에서 JSONobject 를 HashMap 으로 변환(방법+main 방법 호출 인 스 턴 스)
7998 단어 JSONObject바꾸다HashMap
도입 한 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 으로 전환 되 는 내용 은 예전 의 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 도 많은 관심 부탁드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
자바 대체 공백다음은 자바입니다.lang.StringBuilder.replace () 방법의 설명public StringBuilder replace(int start, int end, String str)매개 변수 String 문...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.