2013-11-25 5 views
4

Я строка, как это (только)Как преобразовать строку JSON в пользовательский объект?

"{\"username":\"stack\",\"over":\"flow\"}" 

Я успешно преобразовали эту строку в формате JSON с

JSONObject object = new JSONObject("{\"username":\"stack\",\"over":\"flow\"}"); 

У меня есть класс

public class MyClass 
{ 
    public String username; 
    public String over; 
} 

Как я могу конвертировать JSONObject в мой пользовательский объект MyClass?

+2

Посмотрите на Джексона или Гсона, они оба справляются с такими вещами. – Thomas

ответ

6

Вы можете реализовать статический метод в MyClass, который принимает JSONObject в качестве параметра и возвращает MyClass пример. Например:

public static MyClass convertFromJSONToMyClass(JSONObject json) { 
    if (json == null) { 
     return null; 
    } 
    MyClass result = new MyClass(); 
    result.username = (String) json.get("username"); 
    result.name = (String) json.get("name"); 
    return result; 
} 
+0

Есть ли какие-либо способ конвертировать объект с помощью JSONObject? без изменения класса – jpganz18

5

вам нужно Gson:

Gson gson = new Gson(); 
final MyClass myClass = gson.fromJson(jsonString, MyClass.class); 

также то, что может пригодиться в будущих проектах для вас: Json2Pojo Class generator

+0

+1 Примечание: Gson отлично подходит для простых случаев. Если вам нужно больше контроля, взгляните на Джексона. –

+0

@Goran Štuc Одно из сомнений, что такое GSON, это то, что лучше, чем JSON Object –

+0

Gson - это API, который вы можете получить здесь: http://code.google.com/p/google-gson/ –

Смежные вопросы