【问题标题】:How to format JSON in NSArray?如何在 NSArray 中格式化 JSON?
【发布时间】:2016-11-04 16:01:52
【问题描述】:

我从 NSArray 开始,我想将数组中的内容转换为 JSON 格式。

这是 NSArray 的内容:

(
        {
        "men_clothing" =         {
            Tops = Activewear;
        };
    }
)

这是我试过的代码:

NSData *jsonData = [NSJSONSerialization dataWithJSONObject:userObject[@"userInterests"] options:0 error:nil];


    NSDictionary* json = [NSJSONSerialization JSONObjectWithData:jsonData options:kNilOptions error:nil];


    NSLog(@"jSON%@",json);

我想在 NSArray 中以 JSON 格式结束。

我希望看到这样的东西:

{
"men_clothing":          {
   "Tops":"Activewear"}
}

【问题讨论】:

  • 已经是 JSON 格式了。你想把它存储在数组中吗?
  • 在我的数据库中它是 JSON 格式,但是当我检索它时它会像这样返回。
  • 非常低质量的问题。 @Farhan,请发布一些代码,您正在记录什么对象。我想你需要谷歌NSJSONSerialization
  • @NeilGaliaskarov 对此感到抱歉,刚刚更新了代码。
  • 您的问题非常不清楚。 JSON 是一种序列化格式。您可以使用 NSJSONSerialization 将包含其他容器对象或数据对象(如字符串和数值)的“对象图”(外部 NSArrayNSDictionary)来回转换为 JSON NSData。这是有据可查的。你从什么开始?一个字符串? NS数据?在我看来,您从 NSObject 开始并希望将其转换为 JSON。您的代码的第一行就是这样做的。

标签: ios objective-c json


【解决方案1】:

只需将 NSArray 转换为 JSON 并记录该 JSON:

NSArray * test = @[
    @"Test1", @"Test2", @"Test3"
];
NSData * testJSONData = [NSJSONSerialization
    dataWithJSONObject:test options:0 error:NULL
];
NSString * testJSONString = [[NSString alloc]
    initWithData:testJSONData encoding:NSUTF8StringEncoding
];
NSLog(@"Array is:\n%@", testJSONString);

输出:

Array is:
["Test1","Test2","Test3"]

如果你不使用 ARC,别忘了清理:

[testJSONString release];

【讨论】:

  • 我用[{"men_clothing":{"Tops":"Activewear"}}][ ] 找回它
  • 我还需要将它作为 NSArray 返回,我可以这样做吗?
  • 你说你需要转换成 JSON,然后你说你需要它作为一个 NSArray。这是没有意义的。如果是 JSON,则不是 NSArray,如果是 NSArray,则不是 JSON。 JSON 是一种将对象转换为字节流的方法,您可以通过串行连接或 Internet 发送该字节流。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-23
  • 1970-01-01
  • 1970-01-01
  • 2017-12-30
  • 2015-12-26
相关资源
最近更新 更多