这是我的JSON
{
"id": 1,
"user": {
"user_name": "Tester",
"real_info": {
"full_name":"Jon Doe"
}
},
"reviews_count": [
{
"count": 4
}
]
}
Run Code Online (Sandbox Code Playgroud)
这是我想要保存的结构(不完整)
struct ServerResponse: Decodable {
var id: String
var username: String
var fullName: String
var reviewCount: Int
enum CodingKeys: String, CodingKey {
case id,
// How do i get nested values?
}
}
Run Code Online (Sandbox Code Playgroud)
尽量不要笑或哭 - 我只是在20年后重新开始编码......
我花了4个多小时查看引用并尝试使用代码片段来获取Bundle.main.path来打开我的文本文件所以我可以读取我的应用程序的数据(我的下一步是适当地解析它).
if let filepath = Bundle.main.path(forResource: "newTest", ofType: "txt")
{
do
{
let contents = try String(contentsOfFile: filepath)
print(contents)
}
catch
{
print("Contents could not be loaded.")
}
}
else
{
print("newTest.txt not found.")
}
Run Code Online (Sandbox Code Playgroud)
结果是:"找不到newTest.txt." 无论我如何尝试将文件拖放到项目中,在Xcode中创建文件或使用文件 - >添加文件到...菜单项.
我有一个名为points.json的JSON文件,以及一个读取函数,如:
private func readJson() {
let file = Bundle.main.path(forResource: "points", ofType: "json")
let data = try? Data(contentsOf: URL(fileURLWithPath: file!))
let jsonData = try? JSONSerialization.jsonObject(with: data!, options: []) as! [String:Any]
print(jsonData)
}
Run Code Online (Sandbox Code Playgroud)
它不起作用,有什么帮助吗?
我正在尝试为json验证编写单元测试(因为app严重依赖于来自其余API的json).
我有一个包含简单json的本地文件:"goodFeaturedJson.txt"
内容:
{
"test": "TEST"
}
Run Code Online (Sandbox Code Playgroud)
测试用例:
- (void)testJsonIsValid
{
Featured *featured = [Featured new];
NSString* filepath = [[NSBundle mainBundle]pathForResource:@"goodFeaturedJson" ofType:@"text"];
NSData *data = [NSData dataWithContentsOfFile:filepath];
NSString *jsonString = [[NSString alloc] initWithContentsOfFile:filepath encoding:NSUTF8StringEncoding error:nil];//[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"The json string is: %@", jsonString);
id JSON = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
STAssertTrue([featured jsonIsValid:JSON], @"Featured Data is NOT valid...");
}
Run Code Online (Sandbox Code Playgroud)
每次测试失败.控制台打印:
The json string is: (null)
Run Code Online (Sandbox Code Playgroud)
为什么?我知道为什么测试失败了,因为很明显,如果数据是nil/null,那么就没有有效的json,并且验证器将会中断(如果它无效则应该中断).
我必须在这里找到一些简单的东西,任何想法?
我在我的文件系统中添加了一个JSON文件,其中数据结构如下:
{"DDD":"3D Systems Corporation","MMM":"3M Company","WBAI":"500.com Limited","WUBA":"58.com Inc.","AHC":"AH Belo公司","ATEN":"A10 Networks,Inc.","AAC":"AAC Holdings,Inc.","AIR":"AAR Corp." }
我的文件名是stockDict.json,我正在尝试使用此代码从中检索数据:
let jsonFilePath:NSString = NSBundle.mainBundle().pathForResource("stockDict", ofType: "json")!
let jsonData:NSData = NSData.dataWithContentsOfMappedFile(jsonFilePath as String) as! NSData
let error:NSError?
let json = JSON(jsonData)
println(json[0][0].string)
Run Code Online (Sandbox Code Playgroud)
但是我打印的所有内容都是nil.我的代码出了什么问题?
任何建议,将不胜感激.
我正在尝试从本地文件加载一些JSON数据.
在这篇Apple文档中,它说:
使用资产目录管理应用程序的数据文件.文件可以包含除Xcode生成的设备可执行代码之外的任何类型的数据.您可以将它们用于JSON文件,脚本或自定义数据类型
所以我添加了一个新的数据集并将JSON文件放入其中.现在我可以在Assets.xcassets文件夹下看到它(Colours.dataset文件夹里面有colours.json和Contents.json)
我发现这个 SO答案显示了如何读取JSON文件,我正在使用此代码来读取文件:
if let filePath = NSBundle.mainBundle().pathForResource("Assets/Colours", ofType: "json"), data = NSData(contentsOfFile: filePath) {
print (filePath)
do {
let json = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.AllowFragments)
print(json)
}
catch {
}
} else {
print("Invalid file path")
}
Run Code Online (Sandbox Code Playgroud)
但是此代码正在打印"无效的文件路径"而不是读取文件.我也试过"颜色"和"Colours.json",但无济于事.
谁能告诉我如何正确添加本地JSON文件并阅读它?
谢谢.
我正在 webView 中加载 url,现在我想阻止 webView 中的 url 中的广告。我怎样才能实现这个目标?
[_webVw loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:page_url]]];
Run Code Online (Sandbox Code Playgroud) 我正在为iOS应用程序编写UI测试。我想从本地json文件读取数据。
我正在使用以下代码来获取json文件的路径:
func testExample() {
readJSON()
}
func readJSON(){
let bundle = Bundle(for:myTestClass.self)
if let path = bundle.url(forResource: "myurl", withExtension: "json"){
print("Got the path")
print(path)
}
else{
print("Invalid filename/path")
}
Run Code Online (Sandbox Code Playgroud)
我已尝试将解决方案用于以下stackoverflow问题: 使用Swift读取JSON文件。没工作!
另外,我查看了以下Apple文档:https : //developer.apple.com/swift/blog/?id=37
任何帮助将不胜感激!
我对json解析非常陌生,并尝试解析具有汽车列表的json文件,但是当我解析时,它给出nil
func jsonTwo(){
let url = Bundle.main.url(forResource: "car_list", withExtension: "json")!
let data = try! Data(contentsOf: url)
let JSON = try! JSONSerialization.jsonObject(with: data, options: []) as? [String : Any]
print(".........." , JSON , ".......")
let brand = JSON?["models"] as? [[String : Any]]
print("=======",brand,"=======")
}
Run Code Online (Sandbox Code Playgroud)
当我如下修改此代码时
func jsonTwo(){
let url = Bundle.main.url(forResource: "car_list", withExtension: "json")!
let data = try! Data(contentsOf: url)
let JSON = try! JSONSerialization.jsonObject(with: data, options: [])
print(".........." , JSON , ".......")
let brand = JSON["brand"] as? [[String : Any]] …Run Code Online (Sandbox Code Playgroud) json ×6
ios ×5
swift ×5
swift3 ×3
objective-c ×2
adblock ×1
api ×1
codable ×1
file ×1
macos ×1
nsdictionary ×1
nsurlrequest ×1
parsing ×1
swift4 ×1
swifty-json ×1
wkwebview ×1
xcode ×1
xcode8.2 ×1
xctest ×1