Tag: json

Spring 4.x / 3.x(Web MVC)REST API和JSON2 Post请求,如何一劳永逸?

在深入细节之前,我知道在Stackoverflow上有很多对话和相关的问题。 所有这些都以不同的方式帮助我,所以我想我把所有的发现放在一起作为一个有组织的常见问题总结我的发现。 相关的概念 当然,你知道这些,但我只是写他们作为一个快速审查。 随时编辑,以防万一我失去了一些东西。 HTTP POST请求: 当您愿意将对象发送到Web服务或您的服务器端应用程序时,会使用发布请求。 连载: 是从您的Web浏览器到您的服务器端应用程序的对象的过程。 可以使用jQuery Ajax调用或Curl post请求。 序列化协议: 这些日子里最stream行的是JSON和XML。 由于XML标签的性质,XML由于序列化的XML对象的规模相对较大而变得越来越stream行。 在这个FAQ中,主要关注的是JSON2序列化。 弹簧: Spring框架及其强大的注释使得以有效的方式公开Web服务成为可能。 Spring中有很多不同的库。 这里我们关注的是Spring web MVC 。 curl与JQuery: 这些是您可以用来在您的客户端进行发布请求的工具。 即使您打算使用JQuery ajax调用,我build议您使用Curl进行debugging,因为它在发出请求后提供了详细的响应。 @RequestBody与@ RequestParam / @ PathVariable与@ModelAttribute: 如果您的Web服务不依赖于Java EE模型,则必须使用@RequestBody。 如果使用模型并将JSON对象添加到模型中,则可以通过@ModelAttribute访问该对象。 只有在您的请求是GET请求或GET和POST请求组合的情况下,您将需要使用@ RequestParam / @ PathVariable。 @RequestBody vs @ResposeBody: 正如你从名字中看到的那样简单,如果在服务器端方法处理请求之后发送客户端的响应,则只需要@ResponseBody。 RequestMappingHandlerAdapter vs AnnotationMethodHandlerAdapter: RequestMappingHandlerAdapter是Spring框架的新的映射处理程序,它自Spring 3.1以来取代了AnnotationMethodHandlerAdapter。 如果您现有的configuration仍然在AnnotationMethodHandlerAdapter中,您可能会发现这个post很有用。 在我的文章中提供的configuration将给你一个关于如何设置RequestMappingHandlerAdapter的想法。 build立 您将需要设置一个消息转换器。 这就是你的序列化的JSON消息正文在服务器端转换成本地java对象的方式。 […]

将圆形结构转换为JSON – 任何方法来find它抱怨什么字段?

我试图在Chrome中对一个对象进行string化(…),尽pipe事实上(据我所知)没有这样的结构存在,但我总是得到一个“将循环结构转换成JSON”的消息。 我已经完成了十几次代码,无法find任何循环引用。 有没有什么办法让Chrome告诉我除了这个痛苦无用的错误信息之外还有什么讽刺呢?

GSON – 从string获取JSON值

我试图parsingJSONstring“{'test':'100.00'}”,并得到GSON库的值:100.00。 我的代码如下所示: String myJSONString = "{'test': '100.00'}"; JsonObject jobj = new Gson().fromJson(myJSONString, JsonObject.class); String result = jobj.get("test").toString(); System.out.println(result); 我的结果是这样的:“100.00”,但我只需要100.00没有引号。 这怎么能成真?

json.dump抛出“TypeError:{…}是不是JSON序列化”看似有效的对象?

背景 :我正在写一个应该pipe理我的音乐文件的Python程序。 它抓取目录,并将文件和它们的元数据(通过mutagen)编码成JSON格式,作为一个简单的“数据库”。 我有目录search很好,但是当我尝试保存数据库,或编码为JSON,它会引发“TypeError:{…}不是JSON可序列化”(…是一些字典和键值,下面更多) 问题 :程序按照以下格式构build一个大的字典对象: { "<song id>":{ "artist":"<song artist>", "album":"<song album>", "title":"<song title>"}, … } 每一首歌曲文件都通过这种格式进行索引。 当我尝试将数据库转储到一个文件,我得到这个: Traceback (most recent call last): File "<pyshell#2>", line 1, in <module> sit() File "D:\workbench\ideas\musicmanager\v0\spider.py", line 116, in sit json.dump(js.db,f,True) File "C:\Python27\lib\json\__init__.py", line 181, in dump for chunk in iterable: File "C:\Python27\lib\json\encoder.py", line 428, in _iterencode for […]

@JsonProperty字段的注释以及getter / setter

我已经inheritance了一些在getter / setter上具有@JsonProperty注解的代码。 目的是当对象使用Jackson库进行序列化时,这些字段具有特定的名称。 当前代码: private String fileName; @JsonProperty("FILENAME") public String getFileName() { return fileName; } @JsonProperty("FILENAME") public void setFileName(String fileName) { this.fileName = fileName; } 现在换另一个工具,我也需要用JsonProperty注释这个字段。 所以这将是我改变的代码: @JsonProperty("FILENAME") private String fileName; @JsonProperty("FILENAME") public String getFileName() { return fileName; } @JsonProperty("FILENAME") public void setFileName(String fileName) { this.fileName = fileName; } 有没有人在这个领域以及getter / setter上使用了相同的注解? 我在网上环顾四周,但什么也没看见。 我已经编译和运行代码,但我不确定这是否会导致任何问题。 […]

DataContractJsonSerializer和Enums

当我使用DataContractJsonSerializer序列化一个枚举值时,它序列化枚举的数值,而不是string名称。 IE: enum foo { bar, baz } 序列化foo.bar的值返回“0”,而不是“bar”。 我更喜欢反过来,有没有办法来覆盖这个? 编辑: 因为我不想更改序列化程序,所以我使用了一个简单的解决方法。 我暴露了类中的一个属性来序列化调用ToString的值,即: // Old [DataMember] public EnumType Foo { get { return _foo; } set { _foo = value; } } // New, I still kept the EnumType but I only serialize the string version public EnumType Foo { get { return _foo; } […]

什么是JSON八位字节,为什么需要两个?

我有传入的数据,我存储在一个可变的messages : connection = ContextIO::Connection.new(key, secret) messages = connection.all_messages(:account => account, :limit => 100, :since => (Time.now – 3000.day )) variablesmessages格式化为JSON。 然后我执行这个: foo = JSON.parse(messages)['data'] 大部分时间这个工作。 每隔一段时间,我收到这个错误消息: A JSON text must at least contain two octets! 该错误消息然后引用行JSON.parse(messages)['data'] 什么是八位字节? 为什么JSON文本至less包含两个八位字节? 每次messages没有两个八位字节时,如何防止破坏我的代码? 谢谢!

在尝试parsing之前检查一个string是否有效json?

在Ruby中,是否有一种方法来检查一个string是否是有效的JSON之前试图parsing它? 例如从其他url获取一些信息,有时会返回json,有时会返回一个不是有效响应的垃圾。 我的代码: def get_parsed_response(response) parsed_response = JSON.parse(response) end

简单,安全的APIauthentication系统

我有一个简单的REST JSON API用于其他网站/应用程序访问我的网站的一些数据库(通过PHP网关)。 基本上这样的服务是这样的:call example.com/fruit/orange,服务器返回关于橙色的JSON信息。 这是问题:我只想要我允许访问这个服务的网站。 使用简单的API密钥系统,任何网站都可以通过从授权网站(潜在的)客户端代码复制密钥来快速获得密钥。 我已经看过OAuth,但是对于我所做的事情似乎有点复杂。 解决scheme?

如何让AngularJS输出转义HTML

我从服务器获取JSON数据,其中一个字段包含转义的html(实际上是一个电子邮件正文): &lt;html&gt;\r\n&lt;head&gt;\r\n&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=iso-8859-1&quot;&gt;\r\n&lt;/head&gt;\r\n&lt;body dir=&quot;auto&quot;&gt;\r\n&lt;div&gt;Buonasera, ho verificato i dati sul mio account ed il numero di cell che vi ho fornito&lt;/div&gt;\r\n&lt;div&gt;&lt;br&gt;\r\n&lt;a &lt;html&gt;\r\n&lt;head&gt;\r\n&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=iso-8859-1&quot;&gt;\r\n&lt;/head&gt;\r\n&lt;body dir=&quot;auto&quot;&gt;\r\n&lt;div&gt;Buonasera, ho verificato i dati sul mio account ed il numero di cell che vi ho fornito&lt;/div&gt;\r\n&lt;div&gt;&lt;br&gt;\r\n&lt;a (更多…) 我正在尝试使用AngularJs渲染它。 以下不起作用: <div ng-bind-html-unsafe="mail.htmlbody"></div> 我认为这是正常的,因为HTML实际上逃脱了。 我应该先find它吗? Angular是否能够通过一些可用的服务来避免使用html? 如果我使用这样的$ sce: scope.mail.htmlbody = […]