Как сделать разбор JSON в Android? - PullRequest
0 голосов
/ 04 января 2011

Я использую веб-сервис на основе PHP, чтобы получить JSON.Работает нормально.Возвращая мне результат (String):

Array
  (
    [error] => 0
    [response] => Array
        (
            [error] => You have successfully logged in.
        )</p>

<p>)

Я не знаю, что делать после этого.Я хочу разобрать его, чтобы получить ответ.

Какими должны быть следующие шаги?

1 Ответ

0 голосов
/ 29 мая 2011

Мои предположения:

  1. вы используете свой собственный JSON для создания веб-службы,
  2. вы используете чужой JSON для создания веб-службы, или3. вы пытаетесь создать свой собственный JSON API.

Используя свой собственный JSON

ПОЧЕМУ вы это делаете?Все проще, если вы просто придерживаетесь php.Просто сделай печенье.Если вы хотите использовать JSON, для него все еще требуются файлы cookie!То же самое, но гораздо сложнее и проще взломать!


Использование JSON, предоставляемого другим сайтом

Прежде всего, это не JSON.Это массив.Если тот код, который вы предоставили, был уже преобразован из json в массив, давайте изменим это:

$string = file_get_contents("http://www.website.com/api.json"); // gets file content
$decoded=json_decode($string); // creates objects (not array... this makes it easier (for me))
$item = $decoded->item-string; // generates the string from an item's name

Повторите $ item, если вам нужно более одного.

используйте $item = $decoded->item-string->secondary-item-string;, чтобы получитьэлемент внутри элемента.


Создание собственного API входа в систему

Прежде всего, вы вообще не используете JSON.Я считаю, что это выходной массив PHP.Вы можете использовать json_encode для кодирования массива в JSON.

Вместо того, чтобы разработчики сайтов напрямую создавали форму входа (что, я думаю, вы пытаетесь сделать), позвольте им использовать ВАШУ систему входа в систему.Таким образом, они не могут тайно «красть» пароли, делая ложный вход в систему… и т. Д., И т. Д.

Сначала создайте php-файл, например, loginapi.php .Используйте htaccess для перезаписи loginapi.php в loginapi.json ( Rewrite Engine ), а затем создайте файл .html для формы входа, например loginform.html

Предполагается, что вы используете $ isloggedin, чтобы проверить, вошел ли пользователь в систему:

header ('Content-type: text/javascript; charset=utf-8');

if($isloggedin == "yes"){
  $arr = array("isloggedin" => "yes", "item1" => "output1", "item2" => "output2", "item3" => "output3");
}
else {
  $arr = array("isloggedin" => "no", "html" => "<iframe src=\"http://www.yoursite.com/loginform.html\" width=\"400\" height=\"200\" style=\"border:none;\"></iframe>");
}

echo json_encode($arr);

↑ Это сообщает разработчику, вошел ли пользователь в систему или нет.10

Вы также можете сделать «ключ API», чтобы

  1. Вы могли узнать всех разработчиков, которые используют ваш API
  2. Вы можете контролировать / ограничиватьлюди, которые используют ваш API

Для этого вы должны создать таблицу в вашей базе данных для ключей API разработчика.Затем используйте $ _GET ['key'];чтобы проверить, есть ли ключ API или нет.Затем проверьте базу данных на наличие соответствующего ключа API или нет.

В месте, где вы принимаете разработчиков для ключей API, позвольте разработчику ввести URL своего веб-сайта и используйте хеш для создания ключа, например, md5.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...