String 변수가 있습니다 jsonString
.
{"phonetype":"N95","cat":"WP"}
이제 JSON 객체로 변환하고 싶습니다. Google에서 더 많이 검색했지만 예상 답변을 얻지 못했습니다 …
답변
org.json 라이브러리 사용하기 :
try {
JSONObject jsonObject = new JSONObject("{\"phonetype\":\"N95\",\"cat\":\"WP\"}");
}catch (JSONException err){
Log.d("Error", err.toString());
}
답변
여전히 답을 찾는 사람에게 :
JSONParser parser = new JSONParser();
JSONObject json = (JSONObject) parser.parse(stringToParse);
답변
사용할 수 있습니다 google-gson
. 세부:
객체 예
class BagOfPrimitives {
private int value1 = 1;
private String value2 = "abc";
private transient int value3 = 3;
BagOfPrimitives() {
// no-args constructor
}
}
(직렬화)
BagOfPrimitives obj = new BagOfPrimitives();
Gson gson = new Gson();
String json = gson.toJson(obj);
==> json is {"value1":1,"value2":"abc"}
순환 참조를 사용하여 객체를 직렬화 할 수 없으므로 무한 재귀가 발생합니다.
(직렬화 해제)
BagOfPrimitives obj2 = gson.fromJson(json, BagOfPrimitives.class);
==> obj2 is just like obj
Gson의 또 다른 예 :
Gson은 배우고 구현하기 쉬우므로 다음 두 가지 방법을 알아야합니다.
-> toJson () – Java 객체를 JSON 형식으로 변환
-> fromJson () – JSON을 자바 객체로 변환
import com.google.gson.Gson;
public class TestObjectToJson {
private int data1 = 100;
private String data2 = "hello";
public static void main(String[] args) {
TestObjectToJson obj = new TestObjectToJson();
Gson gson = new Gson();
//convert java object to JSON format
String json = gson.toJson(obj);
System.out.println(json);
}
}
산출
{"data1":100,"data2":"hello"}
자원:
답변
JSON 홈페이지 에서 링크 된 다양한 Java JSON 시리얼 라이저 및 디시리얼라이저가 있습니다 .
이 글을 쓰는 시점에서 다음 22 가지가 있습니다.
- JSON-자바 .
- JSONUtil .
- jsonp .
- JSON-lib 디렉토리 .
- Stringtree .
- 소조 .
- json-taglib .
- Flexjson .
- 아르고 .
- jsonij .
- fastjson .
- mjson .
- jjson .
- json-simple .
- json-io .
- 구글 – GSON .
- 포스 노바 JSON .
- 옥수수 변환기 .
- 아파치 johnzon .
- Genson .
- cookjson .
- progbase .
물론 목록은 바뀔 수 있습니다.
답변
자바 7 솔루션
import javax.json.*;
...
String TEXT;
JsonObject body = Json.createReader(new StringReader(TEXT)).readObject()
;
답변
변환하다 String
에 JSONObject
당신이 바로 전달해야 String
의 생성자로 인스턴스를JSONObject
.
예 :
JSONObject jsonObj = new JSONObject("your string");
답변
나는 이것을 위해 google-gson을 사용하고 싶습니다. 정확하게 JSONObject로 작업 할 필요가 없기 때문입니다.
이 경우 JSON 객체의 속성에 해당하는 클래스가 있습니다.
class Phone {
public String phonetype;
public String cat;
}
...
String jsonString = "{\"phonetype\":\"N95\",\"cat\":\"WP\"}";
Gson gson = new Gson();
Phone fooFromJson = gson.fromJson(jsonString, Phone.class);
...
그러나 귀하의 질문은 JSON 문자열의 실제 JSONObject 객체로 어떻게 끝나는가와 비슷하다고 생각합니다.
나는 google-json api를보고 있었고 org.json의 api와 같은 것을 찾을 수 없었습니다. 이것은 아마도 JSONObject를 사용해야 할 때 사용하고 싶을 것입니다.
http://www.json.org/javadoc/org/json/JSONObject.html
org.json.JSONObject (완전히 다른 API)를 사용하여 다음과 같은 작업을 수행하려는 경우 …
JSONObject jsonObject = new JSONObject("{\"phonetype\":\"N95\",\"cat\":\"WP\"}");
System.out.println(jsonObject.getString("phonetype"));
google-gson의 장점은 JSONObject를 처리 할 필요가 없다는 것입니다. json을 가져 와서 직렬화 해제하려는 클래스를 전달하면 클래스 속성이 JSON과 일치하지만 다시 모든 사람이 고유 한 요구 사항을 갖습니다. JSON 생성 측면에서 일이 너무 동적 일 수 있으므로 역 직렬화 측면 이 경우 json.org를 사용하십시오.