【发布时间】:2018-11-18 18:18:55
【问题描述】:
我有以下 JSonArray 并想通过其“ID”搜索一个值。 这里存储在 QJsonArray 中的 JSON:
{
"datasources":[
{"id":1, "name":"tps-pos", "display-name":"TPS Position"},
{"id":2, "name":"tps-timer", "display-name":"TPS Timer"},
{"id":3, "name":"laterial-g", "display-name":"Lateral G"},
{"id":4, "name":"longitudal-g", "display-name":"Longitudal G"},
{"id":5, "name":"Z", "display-name":"Z"},
{"id":6, "name":"afr", "display-name":"AFR"},
{"id":135, "name":"IAT", "display-name":"Intake Air temperature"},
{"id":179, "name":"RPM", "display-name":"RPM"}
]}
我尝试了 std:find ,其中 m_list 包含应该在 JSON 中找到的 id。
auto result = std::find(m_DataSourceArray.begin(),m_DataSourceArray.end(), m_list[0]);
在调试时,我看到“结果”总是与 m_DataSourceArray + 字段迭代器相同:(调试器视图:)
result @0x7ed9e0 QJsonArray::iterator
a <8 Elemente> QJsonArray
[0] <3 Elemente> QJsonValue (Object)
[1] <3 Elemente> QJsonValue (Object)
[2] <3 Elemente> QJsonValue (Object)
[3] <3 Elemente> QJsonValue (Object)
[4] <3 Elemente> QJsonValue (Object)
[5] <3 Elemente> QJsonValue (Object)
[6] <3 Elemente> QJsonValue (Object)
[7] <3 Elemente> QJsonValue (Object)
i 8 int
【问题讨论】: