我试图看看在swift 4中使用Codable结构检索json数据的最新和最好的方法是什么.
我在远程URL中有以下json数据:
[
{
"products": [
{
"productid": "01",
"price": "01"
},
{
"productid": "02",
"price": "02"
}
]
}
]
Run Code Online (Sandbox Code Playgroud)
我还设置了相应的可编码结构.我的问题是使用swift 4的最新技术检索这些数据的正确方法.
我看到了各种各样的方式,例如:
我想知道哪个是从远程URL使用swift 4检索json数据的正确(最新)格式.谢谢.
我有以下课程:
public class Customer
{
public int location { get; set; }
public List<int> slots { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然后我有一个客户列表:
List<Customer> lstCustomer = new List<Customer>();
Run Code Online (Sandbox Code Playgroud)
然后我有一个插槽号码:
int slot = 4;
Run Code Online (Sandbox Code Playgroud)
我想返回插槽所属的特定位置的整数.(见上面的客户类)
这是我到目前为止:
int? location = lstCustomer
.Where(l => l.slots.Any(x => slot))
.FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
但这不起作用(Error: Cannot convert int to bool).任何帮助,将不胜感激.谢谢.
我试图在井号#前面添加一个空格。但是,如果井号前面已经有空格,则不应添加空格。另外,它不应在字符串的首字符添加空格。这是我到目前为止的内容:
string result = Regex.Replace("542#452", @"(?=#)(?!$)", " ");
Run Code Online (Sandbox Code Playgroud)
但这会增加双倍的空格(当一个磅符号已经有一个空格时)。它还在开头添加了一个空格:
样本数据和所需的输出:
Input Output
243#423 243 #423
22 #44 22 #44
#32# #32 #
# #
## # #
Run Code Online (Sandbox Code Playgroud)
谢谢
我正在使用 Swift 4 和JSONDecoder. 我有以下结构:
struct Customer: Codable {
var id: Int!
var cnum: String!
var cname: String!
}
Run Code Online (Sandbox Code Playgroud)
注意:这些字段不能是可选的。
现在我有一个 JSON 字符串:
[
{
"id": 1,
"cnum": "200",
"cname": "Bob Smith"
},
{
"id": 2,
"cnum": "201",
"cname": null
}
]
Run Code Online (Sandbox Code Playgroud)
为了对其进行解码,我使用以下命令:
let decoder = JSONDecoder()
let customers = try decoder.decode([Customer].self, from: json)
Run Code Online (Sandbox Code Playgroud)
除了空数据被转换为 nil 之外,一切正常。我的问题是,将传入的 nil 转换为空字符串(“”)的最简单方法是什么?
我想用最少的代码来做到这一点,但我不确定正确的方法以及在什么时候可以将 nil 转换为空字符串。预先谢谢你。