虚假问题: 我有我的json:
#0 kstrtouint (s=<optimized out>, base=<optimized out>, res=0xffffffff81a8d820 <irq>) at lib/kstrtox.c:225
#1 0xffffffff8106e124 in param_set_uint (val=<optimized out>, kp=<optimized out>) at kernel/params.c:295
#2 0xffffffff8106ed98 in parse_one (handle_unknown=<optimized out>, arg=<optimized out>, max_level=<optimized out>, min_level=<optimized out>, num_params=<optimized out>, params=<optimized out>, doing=<optimized out>, val=<optimized out>, param=<optimized out>) at kernel/params.c:148
#3 parse_args (doing=<optimized out>, args=0xffff880007fdb99f "", params=<optimized out>, num=<optimized out>, min_level=<optimized out>, max_level=<optimized out>, arg=0x0 <irq_stack_union>, unknown=0xffffffff81aeb8e5 <unknown_bootoption>) at kernel/params.c:243
#4 0xffffffff81aebc6d in start_kernel () at init/main.c:518
如果像这样的“idDestino”,尝试打印结果:
let jsonDestination = "[{\"data\": {\"destinos\": [{\"idDestino\": \"1\",\"desDestino\": \"ASUNCION\"},{\"idDestino\": \"2\",\"desDestino\": \"MIAMI\"}]}}]"
但是,永远不要输入执行第 if let dataFromString = jsonDestination.data(using: .utf8, allowLossyConversion: false) {
let destinationJson = JSON(data: dataFromString)
for item in destinationJson["destinos"].arrayValue {
print(item["idDestino"].stringValue)
}
}
行
我也试试这个:
print(item["idDestino"].stringValue)
并收到此错误:
_error NSError? domain:“SwiftyJSONErrorDomain” - 代码:901 0x000060000005c080 此错误意味着:无法合并,因为JSON在顶级
上的类型不同
相同:let firtsDestinationId = destinationJson[0]["data"]["destinos"]["idDestino"]
print(firtsDestinationId)
所以..我真正的问题是我不知道如何抓住我的json的数据......能帮助我吗?
PD:这个例子很好用:
let firtsDestinationId = destinationJson["data"][0]["destinos"]["idDestino"]
我的json是问题吗?怎么能正确使用?
答案 0 :(得分:1)
查看我对JSON对象中每个级别的注释
[-----------------------------------------Array
{--------------------------------------Obj
"data":{----------------------------Obj
"destinos":[---------------------Array
{-----------------------------Obj
"idDestino":"1",
"desDestino":"ASUNCION"
},
{
"idDestino":"2",
"desDestino":"MIAMI"
}
]
}
}
]
下面的代码不起作用,因为destinos的JSON元素是一个数组。
let firtsDestinationId = destinationJson[0]["data"]["destinos"]["idDestino"]
您无法尝试以下代码
let firtsDestinationId = destinationJson[0]["data"]["destinos"][0]["idDestino"]
答案 1 :(得分:0)
对于其他想要浏览Json [array]的人...在我的情况下,我写下这段代码:
<EditText
android:id="@+id/et1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="right"
android:hint="hint1"
android:inputType="number"
android:maxLength="3"
android:textSize="24sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="/"
android:textColor="@color/black"
android:textSize="24sp" />
<EditText
android:id="@+id/et2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="right"
android:hint="hint2"
android:inputType="number"
android:maxLength="3"
android:textSize="24sp" />