Каков правильный тип содержимого JSON?

Поскольку файл-файл читает файл, он использует указатель, чтобы отслеживать, где он находится. Если вы прочитаете часть файла, а затем вернитесь к нему позже, он поднимется туда, где вы остановились. Если вы прочитаете весь файл и вернетесь к тому же файловому объекту, это будет похоже на чтение пустого файла, потому что указатель находится в конце файла, и читать его нечего. Вы можете использовать file.tell(), чтобы увидеть, где в файле указатель, и file.seek установить указатель. Например:

>>> file = open('myfile.txt')
>>> file.tell()
0
>>> file.readline()
'one\n'
>>> file.tell()
4L
>>> file.readline()
'2\n'
>>> file.tell()
6L
>>> file.seek(4)
>>> file.readline()
'2\n'

Кроме того, вы должны знать, что file.readlines() читает весь файл и сохраняет его как список. Это полезно знать, потому что вы можете заменить:

for line in file.readlines():
    #do stuff
file.seek(0)
for line in file.readlines():
    #do more stuff

на:

lines = file.readlines()
for each_line in lines:
    #do stuff
for each_line in lines:
    #do more stuff

Вы также можете перебирать файл по одной строке за раз, не сохраняя весь файл в памяти (это может быть очень полезно для очень больших файлов):

for line in file:
    #do stuff
9858
задан Alec Alameddine 2 May 2019 в 18:53
поделиться

5 ответов

Для текста JSON:

application/json

тип среды MIME для текста JSON application/json . Кодировка по умолчанию является UTF-8. (Источник: RFC 4627 ).

Для JSONP (выполнимый JavaScript) с обратным вызовом:

application/javascript

Вот некоторые сообщения в блоге, которые были упомянуты в комментариях, которые релевантны.

9916
ответ дан Sumit 3 May 2019 в 04:53
поделиться

При вызове веб-сервисов ASP.NET от клиентского, необходимо использовать application/json, чтобы это работало. Я полагаю, что это - то же для jQuery и Расширение платформы.

379
ответ дан Amal Murali 3 May 2019 в 04:53
поделиться
  • 1
    ничего себе, я сходил с ума с этим... Работали 2 потраченные впустую часа, но наконец Ваше решение! – Clash 30 November 2013 в 03:01

Конечно, правильный тип мультимедиа MIME для JSON - application / json , но необходимо понимать, какой тип данных ожидается в вашем приложении.

Например, я использую Ext GWT , и ответ сервера должен иметь вид text / html но содержит данные JSON.

Клиентская сторона, прослушиватель формы Ext GWT

uploadForm.getForm().addListener(new FormListenerAdapter()
{
    @Override
    public void onActionFailed(Form form, int httpStatus, String responseText) 
    {
        MessageBox.alert("Error");
    }

    @Override
    public void onActionComplete(Form form, int httpStatus, String responseText) 
    {
        MessageBox.alert("Success");
    }
});

В случае использования типа ответа application / json браузер предлагает мне сохранить файл.

Исходный код на стороне сервера фрагмент с использованием Spring MVC

return new AbstractUrlBasedView() 
{
    @SuppressWarnings("unchecked")
    @Override
    protected void renderMergedOutputModel(Map model, HttpServletRequest request,
                                           HttpServletResponse response) throws Exception 
    {
        response.setContentType("text/html");
        response.getWriter().write(json);
    }
};
621
ответ дан 22 November 2019 в 19:37
поделиться

IANA зарегистрировала официальный тип MIME для JSON как application / json .

На вопрос, почему не text / json , Крокфорд, похоже, ответил, что JSON на самом деле не является ни JavaScript, ни текстом, а также IANA с большей вероятностью раздаст application / * , чем текст / * .

Дополнительные ресурсы:

1581
ответ дан 22 November 2019 в 19:37
поделиться

Попробуйте ниже и подтвердите

application/json

0
ответ дан 22 November 2019 в 19:37
поделиться
Другие вопросы по тегам:

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