【问题标题】:How to convert dynamic NSString into JSON format in iOS?如何在 iOS 中将动态 NSString 转换为 JSON 格式?
【发布时间】:2016-01-19 07:30:53
【问题描述】:

请帮助我尝试将 NSString 转换为 JSON 以从该字符串中获取特定数据的任何人。这是我的字符串,我尝试将 NSString 转换为 JSON。该字符串被动态提取到我粘贴在下面那个字符串中的那个 jsonString 中。

NSString *jsonString = @"{status=success&unmappedstatus=captured&instrument_type=iOS&}";
NSData *data = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
id json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];

结果将在 NSLog 甚至 UIalert 视图中显示为 null

NSLog(@"-->>JSON_data: %@",json);

请任何人帮助我..

【问题讨论】:

  • 1.您总是首先将数据作为 NSData 获取。避免将其转换为 NSString 而是直接将其传递给 JSONObjectWithData。 2. 该字符串不是 JSON。它看起来有点像 JSON,但它不是 JSON。 3. 找出该字符串来自哪里以及它应该是什么格式。
  • 那个字符串是根据我的 api 成功响应来的 .. 我需要如何对齐字符串,就像 @maya 答案解析 ....

标签: ios objective-c json nsstring nsjsonserialization


【解决方案1】:

您尝试转换为 NSData 并返回 JSON 的字符串不是有效的 JSON 字符串。

因此,您会得到空 JSON 数据。 你的字符串应该是这样的:

{
"status":"success&amp",
"unmappedstatus" : "captured&amp" , 
"instrument_type" : "iOS&amp"
} 

您可以在此链接下将字符串验证为 JSON: http://www.jsoneditoronline.org/

【讨论】:

  • 是的兄弟,它显示未定义..这意味着这个字符串是错误的,如果你知道,请告诉如何正确对齐它..谢谢..
  • 这肯定是可行的,您需要根据可以将其解析为这种形式的内容在字符串中找到一些逻辑。也许值得重新考虑,你需要什么。
  • 我需要将字符串对齐为字符串中显示的 @maya 对我来说可以正常工作,
【解决方案2】:

你应该把你的字符串存储为

    NSString *jsonString = @"{\"status\":\"success&amp\",\"unmappedstatus\":\"captured&amp\",\"instrument_type\":\"iOS&amp\"}";
    NSData *data = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
    id json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];

希望对你有帮助

【讨论】:

  • 感谢@maya 它的工作.. 但是那个字符串是动态的,我如何像你提到的那样对齐那个字符串..
【解决方案3】:

如果解析失败,则返回nil。使用类似以下的内容来获取错误描述:

NSError *error;
id json = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error];
if (error) {
   NSLog(@"%@", error.localizedDescription);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-31
    • 2014-07-25
    • 2015-08-01
    • 1970-01-01
    • 2014-12-10
    相关资源
    最近更新 更多