显示重复键的QML ListModel

显示重复键的QML ListModel,qml,qt5.7,Qml,Qt5.7,将对象追加到ListModel时,一个键显示了2次 这是我的密码: import QtQuick 2.0 import QtQuick.Window 2.0 Window { visible: true width: 640 height: 480 ListModel { id: modelCategory Component.onCompleted: { var cr = [{"nid":[{"valu

将对象追加到ListModel时,一个键显示了2次

这是我的密码:

import QtQuick 2.0
import QtQuick.Window 2.0

Window {
    visible: true
    width: 640
    height: 480

    ListModel {
        id: modelCategory
        Component.onCompleted: {
            var cr = [{"nid":[{"value":"17"}],"uuid":[{"value":"f68wb2f2-11a0-457b-b8f4-a3bf55bea3d5"}],"vid":[{"value":"17"}],"langcode":[{"value":"en"}],"type":[{"target_id":"category","target_type":"node_type","target_uuid":"12d62f50-2d60-4c9f-96fb-0351df3e4223"}],"title":[{"value":"Restaurant "}],"uid":[{"target_id":"2","target_type":"user","target_uuid":"0a4c1442-f9b5-4cdb-96d3-f3a6bb35d5dd","url":"\/user\/2"}],"status":[{"value":"1"}],"created":[{"value":"1477296867"}],"changed":[{"value":"1477297787"}]}]

            populateCategory(cr);
            console.log(JSON.stringify(modelCategory.get(0)))
        }
    }

    function populateCategory(categoryResult) {
        modelCategory.clear()
        for (var i in categoryResult) {
            var obj = {
                _id: categoryResult[i].nid[0].value,
                categoryName: categoryResult[i].title[0].value
            }

            modelCategory.append(obj)
        }
    }
}
我正在从附加对象的JavaScript文件调用
populateCategory()
。打印其中一个模型项目时,我得到:

{“categoryName”:“餐厅”、“餐厅id”:“17”、“餐厅id”:“17”}

它给出了两个
\u id
。为什么呢?它通过QSortFilterProxyModel破坏了过滤,甚至没有在任何视图中显示


有什么建议吗?

只是想知道如果使用自定义模型而不是在Javascript中乱搞,是否会更好。这里显示的代码可能与您使用的不同。或者这个奇怪的数组可能不一样。是的,我想知道为什么你使用如此奇怪的JS魔法而不是简单化。当ListModel用预加载的键实例化时,它起作用了。好的,我可以知道一种更好的方法来处理类似JSON的文档存储。任何参考资料也非常感谢,谢谢。我已经编辑了你的代码,使之成为一个实际的可运行示例,这是一件应该首先完成的事情。这段代码在我使用Qt5.7时适用。我只是想知道如果使用自定义模型而不是在JavaScription中乱搞,您是否会过得更好可能这里显示的代码与您使用的不同。或者这个奇怪的数组可能不一样。是的,我想知道为什么你使用如此奇怪的JS魔法而不是简单化。当ListModel用预加载的键实例化时,它起作用了。好的,我可以知道一种更好的方法来处理类似JSON的文档存储。任何参考资料也非常感谢,谢谢。我已经编辑了你的代码,使之成为一个实际的可运行示例,这是一件应该首先完成的事情。该代码适用于我使用Qt5.7的情况。