Я пытаюсь разобрать JSON. В последнее время я пытаюсь использовать GSON, чтобы сделать это в студии Android. Однако я не могу получить соединение или сделать что-либо с данными. Данные, которые я бы смотреть на, если бы я мог получить его с сайта будет выглядеть примерно так:Parsing Json из URL в Android Studio
{"item":{"icon":"address_here",
id=820","id":820,"type":"Default",
"typeIcon":"catagory","name":"Name of Object",
"description":"This is an annoying issue to get stuck on"}}
Я использую асинхра, но безрезультатно. Возможно, новый способ взглянуть на это будет хорошо.
Вот мой текущий код:
public class JavaParser extends AsyncTask<String, String, String> {
public String getInternetData() throws Exception {
String sURL = "someurl.com"; //just a string
// Connect to the URL using java's native library
try {
URL url = new URL(sURL);
HttpURLConnection request = (HttpURLConnection) url.openConnection();
Log.d("Debug:", "Made partial connection");
try {
request.connect();
} catch (IOException e1) {
e1.printStackTrace();
}
Log.d("Debug:", "Made connection");
}
catch(Exception e){
}
return "FAILURE";
}
private String response = null;
@Override
protected String doInBackground(String...params) {
try {
response = new JavaParser().getInternetData();
}
catch(Exception e){
Log.d("Error",e.getMessage()
);
}
return response;
}
}
В моем главном классе:
String response = new JavaParser().execute("URL").get(); //eventually I hope to pass the url here to be more dynamic
//Convert to a JSON object to print data
JsonParser jp = new JsonParser(); //from gson
JsonElement root = jp.parse(new InputStreamReader((InputStream) request.getContent())); //Convert the input stream to a json element
JsonObject rootobj = root.getAsJsonObject(); //May be an array, may be an object.
Gson gson = new Gson();
Wrapper response = gson.fromJson(rootobj, Wrapper.class);
Log.d("Out: ",rootobj.get("item\name").getAsString()); //just grab the name info
И моя обертка выглядит так:
public class Wrapper {
@SerializedName("name")
public String item_name;
@SerializedName("icon")
public String iconURL;
@SerializedName("description")
public String item_description;
//more to be added if it works
}
Программа только делает частичное соединение. Я не могу получить строку request.connect(); для работы.
Оставьте свой код. – Jas
Покажите нам, что вы пробовали до сих пор, поэтому мы можем вам помочь ... –
Отправленный код – user1519194