标签: json

将文件和关联数据发布到RESTful WebService,最好是JSON

这可能是一个愚蠢的问题,但我有一个晚上.在我正在开发RESTful API的应用程序中,我们希望客户端以JSON格式发送数据.此应用程序的一部分要求客户端上载文件(通常是图像)以及有关图像的信息.

我很难跟踪单个请求中如何发生这种情况.是否可以将文件数据Base64转换为JSON字符串?我是否需要向服务器发送2个帖子?我不应该为此使用JSON吗?

作为旁注,我们在后端使用Grails,这些服务由本机移动客户端(iPhone,Android等)访问,如果其中任何一个有所不同.

rest grails json file-upload

687
推荐指数
7
解决办法
55万
查看次数

YAML和JSON有什么区别?什么时候比较喜欢一个

考虑到以下因素,我们何时应该优先使用YAML而不是JSON,反之亦然?

  • 性能(编码/解码时间)
  • 内存消耗
  • 表达清晰度
  • 库可用性,易用性(我更喜欢C)

我计划在嵌入式系统中使用这两个中的一个来存储配置文件.

有关:

我应该使用YAML或JSON来存储我的Perl数据吗?

json yaml

673
推荐指数
12
解决办法
30万
查看次数

我可以在web.config中为maxJsonLength设置无限长度吗?

我正在使用jQuery的自动完成功能.当我尝试检索超过17000条记录的列表(每条记录的长度不超过10条)时,它超出了长度并抛出错误:

异常信息:
异常类型:InvalidOperationException
异常消息:使用JSON JavaScriptSerializer进行序列化或反序列化时出错.字符串的长度超过maxJsonLength属性上设置的值.

我可以设置无限长度maxJsonLengthweb.config?如果没有,我可以设置的最大长度是多少?

asp.net asp.net-mvc json

648
推荐指数
18
解决办法
54万
查看次数

如何在ASP.NET中将JSON反序列化为简单的Dictionary <string,string>?

我在JSON中有一个简单的键/值列表,通过POST发送回ASP.NET.例:

{ "key1": "value1", "key2": "value2"}
Run Code Online (Sandbox Code Playgroud)

我并没有想要进入强大的.NET对象

我只需要一个普通的旧的Dictionary(Of String,String),或者一些等价的(hash table,Dictionary(Of String,Object),old-school StringDictionary - hell,一个2-D字符串数组对我有用.

我可以使用ASP.NET 3.5中的任何可用内容,以及流行的Json.NET(我已经将其用于序列化客户端).

显然,这些JSON库都没有开箱即用的明显功能 - 它们完全专注于通过强大的合同进行基于反射的反序列化.

有任何想法吗?

限制:

  1. 我不想实现自己的JSON解析器
  2. 无法使用ASP.NET 4.0
  3. 宁愿远离旧的,已弃用的JSON ASP.NET类

json asp.net-ajax asp.net-3.5 json.net

642
推荐指数
12
解决办法
58万
查看次数

标准的JSON API响应格式?

是否存在用于从API构造JSON响应的标准或最佳实践?显然,每个应用程序的数据都是不同的,所以我不关心,而是"响应样板",如果你愿意的话.我的意思的一个例子:

成功要求:

{
  "success": true,
  "payload": {
    /* Application-specific data would go here. */
  }
}
Run Code Online (Sandbox Code Playgroud)

请求失败:

{
  "success": false,
  "payload": {
    /* Application-specific data would go here. */
  },
  "error": {
    "code": 123,
    "message": "An error occurred!"
  }
}
Run Code Online (Sandbox Code Playgroud)

json response request

642
推荐指数
11
解决办法
50万
查看次数

如何克服"datetime.datetime而不是JSON可序列化"?

我有一个基本的词典如下:

sample = {}
sample['title'] = "String"
sample['somedate'] = somedatetimehere
Run Code Online (Sandbox Code Playgroud)

当我尝试做的时候,jsonify(sample)我得到:

TypeError: datetime.datetime(2012, 8, 8, 21, 46, 24, 862000) is not JSON serializable

我能做些什么,以便我的字典样本可以克服上述错误?

注意:虽然它可能不相关,但字典是从mongodb中检索记录生成的,当我打印输出时str(sample['somedate']),输出是2012-08-08 21:46:24.862000.

python json

626
推荐指数
19
解决办法
44万
查看次数

REST API - PUT与PATCH的实例

首先,一些定义:

PUT在第9.6节RFC 2616中定义:

PUT方法请求将所包含的实体存储在提供的Request-URI下.如果Request-URI引用已经存在的资源,则封闭的实体应该被视为驻留在源服务器上的实体的修改版本.如果Request-URI未指向现有资源,并且该URI能够被请求用户代理定义为新资源,则源服务器可以使用该URI创建资源.

PATCH在RFC 5789中定义:

PATCH方法请求将请求实体中描述的一组更改应用于Request-URI标识的资源.

另外根据RFC 2616第9.1.2节, PUT是幂等的,而PATCH则不是.

现在让我们来看一个真实的例子.当我/users使用数据进行POST {username: 'skwee357', email: 'skwee357@domain.com'}并且服务器能够创建资源时,它将响应201和资源位置(假设/users/1),并且/users/1将返回对GET的任何下一次调用{id: 1, username: 'skwee357', email: 'skwee357@domain.com'}.

现在假设我要修改我的电子邮件.电子邮件修改被视为"一组更改",因此我应该修补/users/1 " 补丁文档 ".在我的情况下,它将是一个json {email: 'skwee357@newdomain.com'}.然后服务器返回200(假设权限正常).这让我想到第一个问题:

  • PATCH不是幂等的.它在RFC 2616和RFC 5789中也这么说.但是如果我发出相同的PATCH请求(使用我的新电子邮件),我将获得相同的资源状态(将我的电子邮件修改为所请求的值).为什么PATCH不是幂等的?

PATCH是一个相对较新的动词(2010年3月引入的RFC),它解决了"修补"或修改一组字段的问题.在引入PATCH之前,每个人都使用PUT来更新资源.但是在引入PATCH之后,让我感到困惑的是当时使用的PUT是什么?这让我想到了第二个(也是主要的)问题:

  • 什么是PUT和PATCH之间的真正区别?我读过PUT可能用于替换特定资源下的整个实体,因此应该发送完整实体(而不是像PATCH一样发送属性集).这种情况的实际用法是什么?您希望何时替换/覆盖特定资源URI下的实体以及为什么不将此类操作视为更新/修补实体?我在PUT中看到的唯一实际用例是在集合上发布PUT,即/users替换整个集合.在引入PATCH之后,在特定实体上发布PUT是没有意义的.我错了吗?

rest json http put http-method

614
推荐指数
8
解决办法
36万
查看次数

JSON.stringify,避免TypeError:将循环结构转换为JSON

我有一个大对象,我想转换为JSON并发送.但它具有圆形结构.我想抛出任何存在的循环引用并发送任何可以进行字符串化的内容.我怎么做?

谢谢.

var obj = {
  a: "foo",
  b: obj
}
Run Code Online (Sandbox Code Playgroud)

我想将obj字符串化为:

{"a":"foo"}
Run Code Online (Sandbox Code Playgroud)

javascript json node.js

608
推荐指数
10
解决办法
67万
查看次数

杰克逊与JSON:未被识别的领域,没有标记为可忽略

我需要将某个JSON字符串转换为Java对象.我正在使用Jackson进行JSON处理.我无法控制输入JSON(我从Web服务中读取).这是我的输入JSON:

{"wrapper":[{"id":"13","name":"Fred"}]}
Run Code Online (Sandbox Code Playgroud)

这是一个简化的用例:

private void tryReading() {
    String jsonStr = "{\"wrapper\"\:[{\"id\":\"13\",\"name\":\"Fred\"}]}";
    ObjectMapper mapper = new ObjectMapper();  
    Wrapper wrapper = null;
    try {
        wrapper = mapper.readValue(jsonStr , Wrapper.class);
    } catch (Exception e) {
        e.printStackTrace();
    }
    System.out.println("wrapper = " + wrapper);
}
Run Code Online (Sandbox Code Playgroud)

我的实体类是:

public Class Student { 
    private String name;
    private String id;
    //getters & setters for name & id here
}
Run Code Online (Sandbox Code Playgroud)

My Wrapper类基本上是一个容器对象,用于获取我的学生列表:

public Class Wrapper {
    private List<Student> students;
    //getters & setters here
}
Run Code Online (Sandbox Code Playgroud)

我一直收到这个错误,"包装"返回null.我不确定缺少什么.有人可以帮忙吗?

org.codehaus.jackson.map.exc.UnrecognizedPropertyException: 
    Unrecognized field …
Run Code Online (Sandbox Code Playgroud)

java data-binding json jackson

602
推荐指数
30
解决办法
69万
查看次数

如何在Ruby on Rails中"漂亮"格式化我的JSON输出?

我希望Ruby on Rails中的JSON输出"漂亮"或格式良好.

现在,我打电话to_json,我的JSON全部在一条线上.有时,如果JSON输出流中存在问题,则很难看到.

有没有办法配置或方法使我的JSON在Rails中"漂亮"或格式良好?

ruby json ruby-on-rails pretty-print

600
推荐指数
14
解决办法
28万
查看次数