получить изображения от JSON - PullRequest
0 голосов
/ 21 ноября 2011

У меня есть json URL-адрес, подобный такому ...

{"Status":
    { "Itemlist":[ 
        { 
            "id" : "2", 
            "Name" : "test", 
            "Price" : "10", 
            "image" :"http://xxxxxxxxxxxxxx.jpg" 
        } , 
        { 
            "id" : "4", 
            "Name" : "Burger", 
            "Price" : "20", 
            "image" :"yyyyyyyyyyyyyyyyyyyyyyy.jpeg" 
        } , 
        { 
            "id" : "6", 
            "Name" : "a", 
            "Price" : "1", 
            "image" :"zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz.jpg" 
        } 
    ]}
}

Я хочу получить изображение из URL-адреса json и отобразить его в списке, используя javascript для PhoneGap Android приложений.Пожалуйста, дайте мне ссылку

Ответы [ 5 ]

1 голос
/ 21 ноября 2011

Поскольку вы хотите сделать это с помощью JavaScript, вот небольшой базовый код для начала работы.Там, где я делаю console.log, вы захотите создать свой HTML и вставить его в DOM там, где вы хотите его отобразить.

    var request = new XMLHttpRequest();
    request.open("GET", "http://my.server.com/data.json");
    request.onreadystatechange = function() {
        if(request.readyState == 4) {
            var data = JSON.parse(request.responseText);
            var list = data.Status.ItemList;
            for (i=0; i<list.length; i++) {
                console.log("Image url = " + list.image);
            }
        }
    }
    request.send();
0 голосов
/ 25 ноября 2011

Я проанализировал данные, а также получил изображение , используя следующий код:

$.getJSON("http://xxxxxxxxxxxxxxxxxxxxx?id=2",

  function(data) {

   $.each(data.Status.Itemlist, function(i,item){


  //$("<img/>").attr("src", item.image).appendTo("#images");
  $('#images ul').append("<li>'<span>"+item.Name+"</span>'<img src='"+item.image+"'
</li>");

   //$('#images ul').append("<li>'"+item.Name+"'</li>");
   //alert(i);
   // alert(item);
   //if(i==4)return false;
   });
});
0 голосов
/ 21 ноября 2011

У меня была похожая проблема при кодировании аналогичного приложения, вы можете либо использовать ленивый загрузчик, либо взглянуть на кодирование и декодирование base 64 ... затем реализовать многопоточность http://evancharlton.com/thoughts/lazy-loading-images-in-a-listview

http://threebrothers.org/brendan/blog/implementing-a-lazy-loading-android-gallery-with-mirah/

0 голосов
/ 21 ноября 2011

Я заметил вашу первую ошибку: при передаче URL-адреса изображения убедитесь, что вы передаете полный URL-адрес, а не zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz.jpg, сделайте его http://10.0.2.2/zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz.jpg,, где 10.0.2.2 - это IP-адрес localhost, затем используйтеЛенивый загрузчик для визуализации ваших изображений желательно в виде списка.Этот сайт может пролить свет на то, что вы ищете http://www.javacodegeeks.com/2010/11/android-full-app-part-6-customized-list.html

0 голосов
/ 21 ноября 2011

Вы можете попробовать это:

JSONObject mainObject = new JSONObject("JsonResponse");
JSONObject statusObject = mainObject.getJsonObject("Status");
JSONArray dataArray = statusObject.getJsonObject("Itemlist");

JSONObject subObj = null;

for(int i=0; i<dataArray.length; i++)
{
   subObj = dataArray.getJsonObject(i);
   String strImageURLValue = subObj.getString("image");

}
...