2017-01-12 15 views
1

Например, у меня есть простой JSON, как это:Возврат Идентификаторы списка вложенных нормированных данных в результате

{ 
    "id": "123", 
    "author": { 
    "id": "1", 
    "name": "Paul" 
    }, 
    "title": "My awesome blog post", 
    "comments": [ 
    { 
     "id": "324", 
     "commenter": { 
     "id": "2", 
     "name": "Nicole" 
     } 
    }, 
    { 
     "id": "325", 
     "commenter": { 
     "id": "3", 
     "name": "Alex" 
     } 
    } 
    ] 
} 

И после нормализации с normalizr и схемами из example

import { normalize, schema } from 'normalizr'; 

// Define a users schema 
const user = new schema.Entity('users'); 

// Define your comments schema 
const comment = new schema.Entity('comments', { 
    commenter: user 
}); 

// Define your article 
const article = new schema.Entity('articles', { 
    author: user, 
    comments: [ comment ] 
}); 

const normalizedData = normalize(originalData, article); 

Я получаю это нормализуется JSON:

{ 
    result: "123", 
    entities: { 
    "articles": { 
     "123": { 
     id: "123", 
     author: "1", 
     title: "My awesome blog post", 
     comments: [ "324", "325" ] 
     } 
    }, 
    "users": { 
     "1": { "id": "1", "name": "Paul" }, 
     "2": { "id": "2", "name": "Nicole" }, 
     "3": { "id": "3", "name": "Alex" } 
    }, 
    "comments": { 
     "324": { id: "324", "commenter": "2" }, 
     "325": { id: "325", "commenter": "3" } 
    } 
    } 
} 

В normalizedData.result, я буду получать только статьи. Но что делать, если мне нужны идентификаторы comments или users. В принципе, я могу получить его с Object.keys(), может быть, есть ли другой способ, нормализр может предоставить нам API, чтобы получить эти данные на этапе нормализации? Я ничего не могу найти об этом API. Или вы можете предложить какие-либо методы для этого, а не автоматически? Потому что Object.keys() не выглядит хорошо для меня.

ответ

1

Поскольку значение, которое вы нормализуете, составляет article, значение result от Normalizr будет Идентификатором статьи. Как вы сами предположили, если вам нужны идентификаторы другого типа вложенных объектов, вам нужно будет использовать что-то вроде Object.keys(normalizedData.entities.comments)

 Смежные вопросы

  • Нет связанных вопросов^_^