首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何将JSON转换为Object

如何将JSON转换为Object
EN

Stack Overflow用户
提问于 2011-11-27 06:56:17
回答 3查看 5.4K关注 0票数 10

我定义了一些自定义类,比如TeacherStudent……现在我从远程服务器接收教师信息(JSON字符串)。

如何将JSON字符串转换为Teacher对象。

在Java语言中,很容易为所有类(TeacherStudent……)实现一个公共方法。和reflect在一起。

但在iOS上的Objective-C中,我能找到的最好的方法是使用核心数据实体,它有setValue:forKey方法。首先,我将JSON字符串转换为NSDictionary,并将disctionary中的键值对设置为Entry

有没有更好的方法?

(我来自中国,所以可能我的英语不好,对不起!)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-11-27 08:03:19

这些都是很好的框架,可以将JSON解析为字典或其他原语,但是如果您希望避免做大量重复的工作,请查看http://restkit.org。具体地说,请查看https://github.com/RestKit/RestKit/blob/master/Docs/Object%20Mapping.md这是一个关于对象映射的示例,在该示例中,您为教师类定义了映射,并且json通过使用KVC自动转换为教师对象。如果您使用RestKit的网络调用,这个过程是完全透明和简单的,但是我已经准备好了我的网络调用,我需要的是将我的json响应文本转换为一个用户对象(在您的例子中是教师),并且我最终弄清楚了如何实现。如果这是你所需要的,请发表评论,我将与RestKit分享如何做到这一点。

注意:我将假设json是使用映射约定{"teacher": { "id" : 45, "name" : "Teacher McTeacher"}}输出的。如果不是这样,而是像这样的{"id" : 45, "name" : "Teacher McTeacher"},那么不用担心……链接中的对象映射设计文档向您展示了如何做到这一点……一些额外的步骤,但也不算太差。

这是我来自ASIHTTPRequest的回调

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
- (void)requestFinished:(ASIHTTPRequest *)request {
    id<RKParser> parser = [[RKParserRegistry sharedRegistry] parserForMIMEType:[request.responseHeaders valueForKey:@"Content-Type"]]; // i'm assuming your response Content-Type is application/json
    NSError *error;
    NSDictionary *parsedData = [parser objectFromString:apiResponse error:&error];
    if (parsedData == nil) {
        NSLog(@"ERROR parsing api response with RestKit...%@", error);
        return;
    }

    [RKObjectMapping addDefaultDateFormatterForString:@"yyyy-MM-dd'T'HH:mm:ssZ" inTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]]; // This is handy in case you return dates with different formats that aren't understood by the date parser

    RKObjectMappingProvider *provider = [RKObjectMappingProvider new];

    // This is the error mapping provider that RestKit understands natively (I copied this verbatim from the RestKit internals ... so just go with it
    // This also shows how to map without blocks
    RKObjectMapping* errorMapping = [RKObjectMapping mappingForClass:[RKErrorMessage class]];
    [errorMapping mapKeyPath:@"" toAttribute:@"errorMessage"];
    [provider setMapping:errorMapping forKeyPath:@"error"];
    [provider setMapping:errorMapping forKeyPath:@"errors"];

    // This shows you how to map with blocks
    RKObjectMapping *teacherMapping = [RKObjectMapping mappingForClass:[Teacher class] block:^(RKObjectMapping *mapping) {
        [mapping mapKeyPath:@"id" toAttribute:@"objectId"];
        [mapping mapKeyPath:@"name" toAttribute:@"name"];
    }];

    [provider setMapping:teacherMapping forKeyPath:@"teacher"];

    RKObjectMapper *mapper = [RKObjectMapper mapperWithObject:parsedData mappingProvider:provider];
    Teacher *teacher = nil;
    RKObjectMappingResult *mappingResult = [mapper performMapping];
    teacher = [mappingResult asObject];

    NSLog(@"Teacher is %@ with id %lld and name %@", teacher, teacher.objectId, teacher.name);
}

显然,您可以重构它以使其更简洁,但这现在解决了我的所有问题。不用再解析了..。只需响应->魔术->对象

票数 5
EN

Stack Overflow用户

发布于 2011-11-27 07:03:38

首先,您是否使用JSON解析器?(如果没有,我建议使用SBJson)。

其次,为什么不在返回self对象的自定义类中创建一个initWithDictionary初始化方法呢?

票数 6
EN

Stack Overflow用户

发布于 2017-06-22 11:05:32

具体来说,请查看https://github.com/fanpyi/jsontooc/blob/master/README.md这是使用nodejs将JSON数据转换为Objective-C模型的示例。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8284123

复制
相关文章
map怎么转json对象_object转jsonobject
业务背景:因为要嵌套一些数据报表,页面点击菜单直接进行url访问,因访问受限要修改url权限,返回数据是JSONObject,防止出现异常,后台进行了一些Map于JSONObject的转换,记录下来
全栈程序员站长
2022/09/23
2.8K0
如何将 JSON 转换为有序判断?
JSON(JavaScript Object Notation)是系统之间数据交换的流行格式。它是一种轻量级、基于文本且易于解析的格式,已成为互联网上数据交换的标准。但是,JSON 不会为数据结构中的元素提供任何顺序。虽然这在大多数情况下可能不是问题,但在某些情况下,元素的顺序很重要。
很酷的站长
2023/08/11
4200
如何将 JSON 转换为有序判断?
字符串转json对象_object转jsonarray
JSONObject json = JSONObject.fromObject(map);
全栈程序员站长
2022/11/10
1.6K0
java map转object_json对象转map集合
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/125104.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/03
2.3K0
在Python如何将 JSON 转换为 Pandas DataFrame?
在数据处理和分析中,JSON是一种常见的数据格式,而Pandas DataFrame是Python中广泛使用的数据结构。将JSON数据转换为Pandas DataFrame可以方便地进行数据分析和处理。在本文中,我们将探讨如何将JSON转换为Pandas DataFrame,并介绍相关的步骤和案例。
网络技术联盟站
2023/08/03
1.3K0
在Python如何将 JSON 转换为 Pandas DataFrame?
jsonobject详解_object转json字符串
JSON(JavaScript Object Notation的首字母缩写)是一种轻量级数据交换格式,最常用于客户端 – 服务器通信。它既易于读/写,又与语言无关。JSON值可以是另一个JSON 对象,数组,数字,字符串,布尔值(true / false)或null。也是后端开发中经常要接触的一个一个类,将要数据封装成json然后传递给前端。 只要我们导入如下maven依赖即可使用由阿里巴巴发布的JSON工具类。
全栈程序员站长
2022/11/08
2.3K0
jsonobject详解_object转json字符串
net.sf.json.JSONException: null object_json数组转json对象
在程序开发过程中,在参数传递,函数返回值等方面,越来越多的使用JSON。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,同时也易于机器解析和生成、易于理解、阅读和撰写,而且Json采用完全独立于语言的文本格式,这使得Json成为理想的数据交换语言。 JSON建构于两种结构:
全栈程序员站长
2022/11/08
6K0
net.sf.json.JSONException: null object_json数组转json对象
Uview UI Http请求中如何将Object转换为FormData
这边我们遇到的问题是,在Uniapp中使用uView的this.$u.post向服务端发送请求时,在data中传入了一个对象'param',但是服务端返回missing param(缺少参数),在dev工具中发现,param的值变成了[Object Object]. 而我们希望传输的是param['key']: value.
xcsoft
2021/08/23
2.9K1
json字符串转换为Json对象_前端字符串转json
参考网上的文章,做了一个关于json的总结,进行留存帮助以后阅读,希望可以帮助到大家。
全栈程序员站长
2022/09/28
7.7K0
jsonobject string转json_string转换为long
本文使用一个小例子展示在java中怎样将一个JSON格式的字符串转化为JSONObject对象。注意,我们使用的是 org.json.simple.JSONObject;
全栈程序员站长
2022/09/22
3.3K0
jsonobject string转json_string转换为long
JS小知识,如何将 CSV 转换为 JSON 字符串
您可以使用 csvtojson 库在 JavaScript 中快速将 CSV 转换为 JSON 字符串:
前端达人
2023/02/17
7.9K0
JS小知识,如何将 CSV 转换为 JSON 字符串
java对象转换为json字符串_复杂json字符串转对象
在学习如何编写基于Java的软件时,开发人员遇到的第一个障碍就是如何将其代码与其他软件连接。 这通常是JSON的来源。虽然您可能是Java向导,但JSON是另一种动物。 无论如何,这篇博客文章解释了完成工作所需的一切。
全栈程序员站长
2022/09/30
8.9K0
java对象转换为json字符串_复杂json字符串转对象
js如何将json字符串转成json对象_前端json字符串转json对象
JSON字符串: var str1 = ‘{ “name”: “cxh”, “sex”: “man” }’; JSON对象: var str2 = { “name”: “cxh”, “sex”: “man” };
全栈程序员站长
2022/11/08
9.4K0
python json转字符串_在python中将json转换为字符串
一开始我没有清楚地解释我的问题。在python中将json转换为字符串时,请尝试使用str()和json.dumps()。
全栈程序员站长
2022/11/16
10.3K0
jackson简单使用,对象转json,json转对象,json转list
添加jackson依赖: // https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core compile group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.8.2' // https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind
Ryan-Miao
2018/03/13
7.8K0
python excel转json json转excel[通俗易懂]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/132995.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/14
2.6K0
在线JSON转XML,XML转JSON
在线转换地址:https://oktools.net/json2xml 在线实现JSON转XML,XML转JSON,效果如下 [image] 测试JSON ··· [ { "input\_index": 0, "candidate\_index": 0, "delivery\_line\_1": "1 N Rosedale St", "last\_line": "Baltimore MD 21229-3737", "de
vivec
2019/08/19
16.6K0
对象转map(object转map)
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/145792.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/29
2.7K0
【Python】json 格式转换 ① ( json 模块使用 | 列表转 json | json 转列表 | 字典转 json | json 转字典 )
然后 , 准备 python 数据 , 将数据放到 list 列表中 , 列表中的元素是 dict 字典 ;
韩曙亮
2023/10/11
6700
【Python】json 格式转换 ① ( json 模块使用 | 列表转 json | json 转列表 | 字典转 json | json 转字典 )
点击加载更多

相似问题

如何将json转换为object?

31

如何将Object转换为Jooq JSON

131

如何将JSON/object转换为dotenv?

15

如何将asn1转换为JSON

1174

如何将List<Object>转换为Json | C#

132
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文