Как представить вложенный JSON в угловых классах? - PullRequest
2 голосов
/ 25 сентября 2019

Я получаю этот JSON с сервера:

"Body": {
    "ErrorsContent": {
        "FunctionalError": [
            {
                "Code": "110900",
                "Error": "xx",
                "Position": "xx",
                "Value": ""
            },
            {
                "Code": "110900",
                "Error": "xx",
                "Position": "xx",
                "Value": ""
            },
            {
                "Code": "110900",
                "Error": "xx",
                "Position": "xx",
                "Value": ""
            },
            {
                "Code": "110902",
                "Error": "xx",
                "Position": "xx",
                "Value": ""
            },
            {
                "Code": "110900",
                "Error": "xx",
                "Position": "xx",
                "Value": ""
            }
        ]
    }
}

Он мне нужен для анализа объекта Angular, поэтому я создал пару классов:

export class Body{
    public ErrorsContent: ErrorsContent;
}

class ErrorsContent{
    public FunctionalError: FunctionalError;
}

class FunctionalError{
    public Code: any;
    public Error: any;
    public Position: any;
    public Value: any;
}

Но это не такотлично работает, когда у меня более одного FuntionalError.

Как мне установить класс FuntionalError, чтобы я мог иметь более одной ошибки, не будучи самим классом?

Любой совет приветствуется!Спасибо.

Ответы [ 3 ]

4 голосов
/ 25 сентября 2019

Измените свой ErrorsContent класс на

class ErrorsContent{
    public FunctionalError: FunctionalError[];//it should be array 
}
3 голосов
/ 25 сентября 2019

FunctionalError является array.Вы объявляете его как object.

Использование

class ErrorsContent {
    public FunctionalError: FunctionalError[];
}

вместо

class ErrorsContent {
    public FunctionalError: FunctionalError;
}

Вы можете использовать любой онлайн-инструмент для преобразования ответа JSON сервера в TSклассы.Пример: jsontots , json2ts и т. Д.

2 голосов
/ 25 сентября 2019

Попробуй так:

class ErrorsContent{
    public FunctionalError: Array<FunctionalError>;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...