【问题标题】:How to check specific value in JSONArray?如何检查 JSONArray 中的特定值?
【发布时间】:2017-04-03 09:10:41
【问题描述】:

我在 Swift 3 中循环时遇到了一点问题。我有一个 JSONArray 和一个 JSONObject,如下所示:

dataReqList [任何]:

[{
bezeich = "MORE SALT";
grpnr = 0;
nr = 1;
}, {
bezeich = "MORE SWEET";
grpnr = 0;
nr = 2;
}, {
bezeich = "MORE PEPPER";
grpnr = 0;
nr = 3;
}, {
bezeich = "MORE CHILLI";
grpnr = 0;
nr = 4;
}, {
bezeich = COLD;
grpnr = 0;
nr = 5;
}, {
bezeich = HOT;
grpnr = 0;
nr = 6;
}, {
bezeich = SMALL;
grpnr = 0;
nr = 7;
}, {
bezeich = LARGE;
grpnr = 0;
nr = 8;
}, {
bezeich = "MEDIUM COOKED";
grpnr = 0;
nr = 9;
}, {
bezeich = "WELL DONE";
grpnr = 0;
nr = 10;
}]

currArticle [Anyhashable: Any]:

Optional([AnyHashable("bezeich"): Fresh and Green Salad, 
        AnyHashable("special-request"): ["MORE PEPPER", "COLD", "HOT"]])

我想知道,如果 JSONArray 具有与 JSONObject 中的 special-request 相同的 String,如何在数组中打印键 bezeich。我已经尝试过了,但它不起作用:

for i in 0..<dataReqList.count {
        if ( ((dataReqList[i] as? [AnyHashable: Any])? ["bezeich"] as! String) == (("\(currArticle?["special-request"]!)") as String) ) {
            print (dataReqList[i])
        }

任何答案和建议都会对我有所帮助。在此先感谢

编辑: 我是 Swift 的新手。我之前读过THIS,但还是不行。

【问题讨论】:

  • 请在发布问题之前进行基本搜索。
  • @shallowThought 对不起专家先生,请看我的编辑:)

标签: json swift swift3


【解决方案1】:

Key special-requestcurrArticle 字典有 Array 的字符串作为值,所以你不能直接将它与字符串进行比较,你可以像这样使用过滤器。

var filterArray = [[String:Any]]() 
if let dataArray = dataReqList as? [[String:Any]],
   let specialRequestArray = currArticle["special-request"] as? [String] {

     filterArray = dataArray.filter { specialRequestArray.contains($0["bezeich"] as? String ?? "") }
     print(filterArray)
}

【讨论】:

  • 它不工作。打印行永远不会执行。但我理解你的块代码的含义。我会尝试修改。谢谢
  • @MarioMargoPradipta 如果您显示的问题是正确的,那么这应该可以完美地工作
  • 真的很抱歉,我是 swift 的新手。在 android studio 中,JSON 输出看起来很正常,不像在 xcode 中(带有可选、其他符号等)
  • @MarioMargoPradipta 然后向我们展示原始 JSON 而不是 Xcode 的控制台日志
  • @MarioMargoPradipta 碰巧伙计:)
猜你喜欢
  • 1970-01-01
  • 2017-06-25
  • 2012-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-02
  • 1970-01-01
相关资源
最近更新 更多