Создайте файл данных json с расширением '.json' [duplicate]

Я бы посмотрел на материал Openstreetmap http://wiki.openstreetmap.org/wiki/Android , особенно этот http://wiki.openstreetmap.org/wiki/Osmdroid замена карты Андроидов

5
задан Brian H 30 January 2010 в 23:21
поделиться

3 ответа

Добро пожаловать в SO. Вы рассматривали использование Zend framework для этого приложения? Я написал об этой теме до , и если вы используете Zend, я, вероятно, мог бы оказать дополнительную помощь. Это, безусловно, поможет вам пройти мимо основ.

HTH,

-aj

-2
ответ дан AJ. 25 August 2018 в 01:03
поделиться
  • 1
    Извините, но «используйте Zend & quot; похоже, немного перебор для решения простой проблемы вроде этого ... – Wim 30 January 2010 в 23:30
  • 2
    @Wim, OP, похоже, разрабатывает свой собственный сервер REST, и я просто указывал на альтернативу переосмыслению колеса. BTW, см. Мой комментарий к вашему ответу. – AJ. 30 January 2010 в 23:31
  • 3
    Вы правы, это может быть полезно для него. Но если его можно решить в 10 строках, я всегда не решаюсь добавить сначала 10K строк рамки ;-) – Wim 31 January 2010 в 00:11

Не совсем такая, какова ваша цель, но здесь есть 3-4 решения, которые могут работать:

Common Solutions

Переписать

Это, скорее всего, наиболее традиционный способ получения чистых URI для вашего API. Если вы хотите, чтобы пользовательская часть user.json была динамической, вы можете использовать mod_rewrite (опять же предполагая, что Apache) переписать ваши URL-адреса на скрипт обработчика php. Если вы собираетесь использовать обычный URL-адрес маршрута в стиле RESTful, вы, вероятно, захотите использовать его для достижения чистых / разделенных URL-адресов.

# For grabbing all users
RewriteEngine on
RewriteRule ^users\.json rest.php [L]

# For grabbing one particular user
RewriteEngine on
RewriteRule ^([a-z0-9]+)\.json rest.php?user=$1 [L]

Где rest.php - ваш скрипт обработчика PHP.

URL-адрес Перезапись без изменения mod-rewrite

Если вы не хотите использовать mod_rewrite, вы также можете сделать что-то вроде

example.com/rest.php/users.json
example.com/rest.php/user-id.json

или даже

example.com/rest.php/user-id
example.com/rest.php/user/user-id

Где rest.php - ваш скрипт обработчика PHP. Вы можете захватить user-id из URL (или URI, если мы говорим о терминах RESTful), используя глобальный $_SERVER с $_SERVER['REQUEST_URI'].

Другие решения

Изменение имени загрузки через Content-Disposition:

Я считаю, что вы хотите добавить заголовок Content-Disposition . ..

<?php
    header('Content-Disposition: attachment; filename="users.json"');
?>

Это заставит файл загружаться как user.json. Обычно это не поведение, ожидаемое для REST API, но из того, как был сформулирован ваш вопрос, я решил, что выброшу его там.

AddHandler (или AddType)

Предполагая, что вы используете сервер Apache, вы также можете просто использовать директиву AddHandler, чтобы файлы расширения .json обрабатывались так, как они являются php .

AddHandler application/x-httpd-php .json

Предупреждение. Другие простые .json-файлы будут обрабатываться как PHP, поэтому вы, вероятно, захотите установить это в файле .htaccess в каталоге с помощью PHP-скрипта. Это отлично работает для этого URI, но не идеально, если вы подвергаете много URI

10
ответ дан nategood 25 August 2018 в 01:03
поделиться

Проблема в этой строке:

header("Content-type: application/json");

Я знаю, что это выглядит как правильный способ (в конце концов, application/json есть официальный MIME-тип для JSON контент), но это заставляет большинство браузеров представить вам диалог загрузки файлов, когда вы просто хотите увидеть текст. Вы можете использовать кодировку text/plain, чтобы избежать этого. Обратите внимание, что ваше приложение AJAX / iPhone / ..., вероятно, не заботится о типе контента, поэтому ваш API будет работать в обоих случаях.

Также см. этот пост в блоге , который предоставляет еще несколько контекстов.

-2
ответ дан Wim 25 August 2018 в 01:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: