https://www.cnblogs.com/jukaiit/p/9345654.html
Swift JSON字符串和字典以及數組的互轉
1、JSONString轉換為字典
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
// JSONString轉換為字典
func
getDictionaryFromJSONString
(
jsonString
:
String
) -
>
NSDictionary
{
let
jsonData
:
Data
=
jsonString
.
data
(
using
: .
utf8
)!
let
dict
=
try
?
JSONSerialization
.
jsonObject
(
with
:
jsonData
,
options
: .
mutableContainers
)
if
dict
!=
nil
{
return
dict
as
!
NSDictionary
}
return
NSDictionary
()
}
|
2、JSONString轉換為數組
1
2
3
4
5
6
7
8
9
10
11
|
func
getArrayFromJSONString
(
jsonString
:
String
) -
>
NSArray
{
let
jsonData
:
Data
=
jsonString
.
data
(
using
: .
utf8
)!
let
array
=
try
?
JSONSerialization
.
jsonObject
(
with
:
jsonData
,
options
: .
mutableContainers
)
if
array
!=
nil
{
return
array
as
!
NSArray
}
return
array
as
!
NSArray
}
|
3、字典轉換為JSONString
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
/**
字典轉換為JSONString
- parameter dictionary: 字典參數
- returns: JSONString
*/
func
getJSONStringFromDictionary
(
dictionary
:
NSDictionary
) -
>
String
{
if
(!
JSONSerialization
.
isValidJSONObject
(
dictionary
)) {
print
(
"無法解析出JSONString"
)
return
""
}
let
data
:
NSData
! =
try
?
JSONSerialization
.
data
(
withJSONObject
:
dictionary
,
options
: [])
as
NSData
!
let
JSONString
=
NSString
(
data
:
data
as
Data
,
encoding
:
String
.
Encoding
.
utf8
.
rawValue
)
return
JSONString
!
as
String
}
|
4、數組轉換為JSONString
1
2
3
4
5
6
7
8
9
10
11
12
13
|
//數組轉json
func
getJSONStringFromArray
(
array
:
NSArray
) -
>
String
{
if
(!
JSONSerialization
.
isValidJSONObject
(
array
)) {
print
(
"無法解析出JSONString"
)
return
""
}
let
data
:
NSData
! =
try
?
JSONSerialization
.
data
(
withJSONObject
:
array
,
options
: [])
as
NSData
!
let
JSONString
=
NSString
(
data
:
data
as
Data
,
encoding
:
String
.
Encoding
.
utf8
.
rawValue
)
return
JSONString
!
as
String
}
|