从服务器处理一些JSON(最初不是以JSON编码),在这样的动作创建器中,然后将其发送到我的reducer:
return fetch(`${SERVICE_API_BASE_URL}/api/categorytree?ope_flg=1`)
.then(
response => response.text(),
error => console.log("error in fetch cat", error)
)
.then(
json_txt => {
console.log("json", JSON.parse(json_txt))
dispatch({
type: FETCH_CATEGORIES_RESPONSE,
categories: JSON.parse(json_txt)
})
}
)
.catch(
ex => console.log("parsing failed", ex)
)
从该控制台日志中,我可以看到数据结构已正确表示:
"data": {
"category_tree": [
{
"category_id": "1",
"name": "A",
"children": [{...}] // <-- this is full of children
}
]
}
children
键是一个嵌套数组,其中包含对象。记录我从我的动作创建者那里做的事情,我可以看到正确的对象就在那里。
然而,当对象到达我的reducer时:
case FETCH_CATEGORIES_RESPONSE:
console.log("reducer:", action.categories)
return Object.assign({}, state, {
isFetching: false,
valid: true,
categories: action.categories.data.category_tree
})
该控制台日志显示部分数据结构已丢失:
"data": {
"category_tree": [
{
"category_id": "1",
"name": "A",
"children": []
}
]
}
children
现在是一个空数组。什么可能导致这种数据丢失?
修改:这是“JSON文字”的原始blob&#39;完全没有格式化
{&#34;导致&#34;:真,&#34;数据&#34; {&#34; category_tree&#34;:[{&#34; CATEGORY_ID&#34;:&#34; 1& #34;&#34; parent_category_id&#34;:空,&#34;名称&#34;:&#34; CATEGORY1&#34;&#34;排序&#34;:&#34; 1&#34; &#34; url_key&#34;:&#34;类别1&#34;&#34; meta_description&#34;:空,&#34; meta_keywords&#34;:空,&#34; enable_flg&#34 ;: #&34; 1&#34;&#34; CREATE_DATE&#34;:&#34; 1520561073&#34;&#34; UPDATE_DATE&#34;:&#34; 1522736897&#34;&#34; del_flg& #34;:&#34; 0&#34;&#34;的子&#34;:[{&#34; CATEGORY_ID&#34;:&#34; 2&#34;&#34; parent_category_id&#34; :&#34; 1&#34;&#34;名称&#34;:&#34; STANDARD&#34;&#34;排序&#34;:&#34; 1&#34;&#34; url_key&#34;:&#34;标准&#34;&#34; meta_description&#34;:空,&#34; meta_keywords&#34;:空,&#34; enable_flg&#34;:&#34; 1& #34;&#34; CREATE_DATE&#34;:&#34; 1520561073&#34;&#34; UPDATE_DATE&#34;:&#34; 1521182557&#34;&#34; del_flg&#34;:& #34; 0&#34;&#34;的子&#34;:[{&#34; CATEGORY_ID&#34;:&#34; 28&#34;&#34; parent_category_id&#34;:&#34; 2&#34;&#34;名称&#34;:&#34; STAN_CHILD&#34;&#34;排序&#34;:&# 34; 1&#34;&#34; url_key&#34;:&#34; 28&#34;&#34; meta_description&#34;:空,&#34; meta_keywords&#34;:空,&#34 ; enable_flg&#34;:&#34; 1&#34;&#34; CREATE_DATE&#34;:&#34; 1523519951&#34;&#34; UPDATE_DATE&#34;:&#34; 1523519951&#34; &#34; del_flg&#34;:&#34; 0&#34;}]}]},{&#34; CATEGORY_ID&#34;:&#34; 10&#34;&#34; parent_category_id&#34 ;:空,&#34;名称&#34;:&#34; woogirls&#34;&#34;排序&#34;:&#34; 3&#34;&#34; url_key&#34;:空&#34; meta_description&#34;:空,&#34; meta_keywords&#34;:空,&#34; enable_flg&#34;:&#34; 1&#34;&#34; CREATE_DATE&#34 ;: #&34; 1522054000&#34;&#34; UPDATE_DATE&#34;:&#34; 1522054000&#34;&#34; del_flg&#34;:&#34; 0&#34;},{&#34 ; CATEGORY_ID&#34;:&#34; 11&#34;&#34; parent_category_id&#34;:空,&#34;名称&#34;:&#34; superjuice&#34;&#34;排序&# 34;:&#34; 4&#34;&#34; url_key&#34;:空,&#34; meta_description&#34;:空,&#34; meta_keywords&#34;:空,&#34; enable_flg& #34;:&#34; 1&#34;&#34; CREATE_DATE&#34;:&#34; 1522054098&#34;&#34; UPDATE_DATE&#34;:&#34; 1522054098&#34;,& #34; del_flg&#34;:&#34; 0&#34;},{&#34; catego ry_id&#34;:&#34; 12&#34;&#34; parent_category_id&#34;:空,&#34;名称&#34;:&#34;附件&#34;&#34;排序&#34 ;:&#34; 5&#34;&#34; url_key&#34;:&#34;附件&#34;&#34; meta_description&#34;:&#34;附件&#34;&#34 ; meta_keywords&#34;:&#34;测试&#34;&#34; enable_flg&#34;:&#34; 1&#34;&#34; CREATE_DATE&#34;:&#34; 1522115928&#34; &#34; UPDATE_DATE&#34;:&#34; 1522116073&#34;&#34; del_flg&#34;:&#34; 0&#34;}]}