Angular - анализ строки json, созданной дампами json - PullRequest
0 голосов
/ 28 мая 2018

Я не смог найти полезного решения.

Я работаю на стороне сервера Python 3.6 (django rest-framwork) и на стороне клиента angular 5.

На сервере:

class TypesView(APIView):
    def get(self,request):
        a = ['Cat','Dog']
        j = json.dumps(a)
        return Response(data=j, status=status.HTTP_200_OK)

Я пытаюсь проанализировать это на клиенте:

  public getAnimalRaces(): Observable<string[]>{
     const path = environment.apiEndpoint + "animals/races/"
    return this._http_client.get<string[]>(path)
  }

, но я продолжаю получать: Ошибка при попытке diff '["Cat", "Dog"]'.Разрешены только массивы и итерации

Это то, что возвращается клиенту:

"[\"Cat\", \"Dog\"]"

есть идеи?

Ответы [ 2 ]

0 голосов
/ 28 мая 2018

Ваш ответ является строковым.Чтобы заставить его работать, вы должны отправить его как обычный JSON на стороне сервера или обработать как строку и использовать JSON.parse() на стороне клиента.

0 голосов
/ 28 мая 2018

Вы пытаетесь выполнить итерацию в строке.

Вам необходимо проанализировать ответ как JSON, который превратит ответ в массив, который вы можете затем использовать с *ngFor в шаблоне, например.

this._http_client.get<string[]>(path)
  .map((res) => JSON.parse(res));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...