Прежде всего: в Json преобразует что-то в json. Вы хотите конвертировать json в какой-то объект. Поэтому используйте fromJson
.
Во-вторых, создайте объект, в который вы можете поместить эти данные. На сайте руководства для gson имеется множество примеров: https://github.com/google/gson/blob/master/UserGuide.md
Позвольте мне написать это для вас. Это не так сложно:
import java.util.Map;
import com.google.gson.Gson;
public class GsonTest {
public static void main(String args[]) {
Gson gson = new Gson();
String json = "{\"name\":\"Bog\", \"foo\":\"bar\", \"result\": 59}";
// Using a map
@SuppressWarnings( "unchecked" )
Map<String,Object> map = gson.fromJson( json, Map.class );
System.out.println( "Name: " + map.get( "name" ) + " result: " + map.get( "result" ) );
// Better: using an object
Student student = gson.fromJson( json, Student.class );
System.out.println( "Name: " + student.name + " result: " + student.result );
}
public static class Student {
public String name;
public String foo;
public int result;
}
}
, что приведет к:
Name: Bog result: 59.0
Name: Bog result: 59
Общий метод: Возьмите строку json и поместите ее в какой-то объект java , Затем получите доступ к этому объекту java, чтобы получить доступ к вашим данным.
Обратите внимание, что вы получаете больший контроль над видом данных, которые вы получите, используя второй метод. Так как json не указывает тип данных, анализатор угадывает float/double
для возраста, в то время как он использует int
во втором примере, потому что класс так сказал.