Мне нравится использовать 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);
...
Однако, я думаю, что ваш вопрос больше похож на: Как я могу получить реальный объект JSONObject из строки JSON.
Я смотрел на google-jsonapi и не смог найти ничего более простого, чем api org.json, который, вероятно, вы и хотите использовать, если вам так сильно нужно использовать barebones 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 Generation все может быть слишком динамично.В этом случае просто используйте json.org.