Questions tagged «json»

JSON(JavaScript对象表示法),又称XML的免费替代品,是一种受JavaScript对象常量启发的轻量级数据交换格式。它通常与JavaScript,Ajax和RESTful Web服务一起使用,但完全与语言无关。

12
我们可以完全用JSON替换XML吗?[关闭]
我确信很多开发人员都熟悉XML和JSON,并且他们都使用了它们。因此,即使是简短的解释,也没有必要解释它们的含义和目的。 如果我们尝试映射他们的概念,我们可以说(如果我错了,请纠正我): XML标签等同于JSON {} XML属性等效于JSON属性 XML标记集合等效于JSON [] 我唯一想到的是XML命名空间,它在JSON中不存在。 问题是,考虑到此映射,并考虑到JSON在此映射中要轻得多,我们能否在没有XML的情况下看到未来的世界(或者至少从理论上讲是一个世界),但是使用JSON可以完成XML的所有工作?我们可以在所有使用XML的地方使用JSON吗? PS:请注意,我已经看到了这个问题。这和我在这里要问的完全不同。因此,请不要提及重复。
78 xml  json 

7
使用Python文件作为配置文件有多么糟糕的主意?
我一直使用JSON文件配置应用程序。我从编写大量Java时就开始使用它们,现在我主要从事服务器端和数据科学Python开发,并且不确定JSON是否是正确的选择。 我已经看到Celery使用实际的Python文件进行配置。最初我对此持怀疑态度。但是,使用简单的Python数据结构进行配置的想法开始对我产生影响。一些优点: 数据结构将与我通常在其中进行编码的结构相同。因此,我无需改变心态。 我的IDE(PyCharm)了解配置和代码之间的联系。Ctrl+ B使您可以轻松地在配置和代码之间跳转。 我不需要使用IMO不必要的严格JSON。我在看你双引号,没有结尾的逗号,也没有评论。 我可以在正在使用的应用程序中编写测试配置,然后轻松将它们移植到配置文件,而无需进行任何转换和JSON解析。 如果确实需要,可以在配置文件中执行非常简单的脚本。(尽管这应该非常非常有限。) 所以,我的问题是:如果我换了脚,我该如何射击自己的脚? 没有技能的最终用户将不会使用配置文件。对配置文件的任何更改当前都提交给Git,并作为连续部署的一部分部署到我们的服务器中。除非有紧急情况或正在开发中,否则无需进行手动配置更改。 (我考虑过YAML,但有关它的一些问题令我感到不适。因此,目前它不在美国的餐桌上。)

14
RESTful API设计。如果没有行,我应该返回什么?
我目前正在使用Slim Framework为社交网络编码API。我的问题是:当json结构中没有要返回的行时,最佳实践是什么? 可以说,此调用/ v1 / get / movies从表电影名称返回2行: [ {"name": "Ghostbusters"}, {"name": "Indiana Jones"} ] 但是,然后我调用了/ v1 / get / books,该表中没有行。我应该只返回一个空结构吗? [ ] ...或者消息和错误代码会更好吗? [ "errors": { "message": "no matches found", "code": 134 } ] 哪个更好的做法?(该API将在iOS和Android应用中使用)谢谢!

6
在RESTful API中将数组作为响应返回的最佳方法是什么?
假设我们有这样的资源, book: type: object properties: author: {type: string} isbn: {type: string} title: {type: string} books: type: array items: book 因此,当某人GET在books资源上做出“ a” 时,我们将返回以下内容 [{"author": "Dan Brown", "isbn": "123456", "title": "Digital Fortress"}, {"author": "JK Rowling", "isbn": "234567", "title": "Harry Potter and the Chamber of Secrets"}] 我从某个工作人员那里听说,建议的REST做法是始终将响应作为JSON对象返回,这意味着我们的架构应books如下所示, books: type: object properties: list: type: …
40 rest  json 

1
REST API响应中的null与缺少键
在我的应用程序中说,有些用户给我们他们的姓氏,有些则没有。在REST API响应中,首选哪个主体: 具有“空”值: {"firstName": "Bob", "lastName": null} 或只是缺少的钥匙: {"firstName": "Bob"}
40 rest  api-design  json 

3
REST API-API是否应返回嵌套的JSON对象?
当涉及JSON API时,将响应展平并避免嵌套JSON对象是一种好习惯吗? 例如,假设我们有一个类似于IMDb的API,但用于视频游戏。有几个实体,分别是Game,Platform,ESRBRating和GamePlatformMap,它们映射了Game和Platform。 假设您请求/ game / 1来获取ID为1的游戏,并返回嵌套了平台和esrbRating的游戏对象。 { "id": 1, "title": "Game A", "publisher": "Publisher ABC", "developer": "Developer DEF", "releaseDate": "2015-01-01", "platforms": [ {"id":1,"name":"Xbox"}, {"id":2,"name":"Playstation"} ], "esrbRating": { "id": 1, "code": "E", "name": "Everyone" } } 如果您使用的是JPA / Hibernate之类的工具,并且将其设置为FETCH.EAGER,它可能会自动为您执行此操作。 另一个选择是简单地使用API​​并添加更多端点。 在这种情况下,当请求/ game / 1时,仅返回游戏对象。 { "id": 1, "title": "Game A", …
37 design  rest  api-design  json 


6
使用关系数据库与JSON对象获取事件/活动数据
我正在一个项目中尝试在一个标准SQL关系数据库或JSON对象之间存储有关事件或活动的数据。 该项目将存储多种事件类型的数据,因此我决定仅描述此问题的一种事件类型。 现场音乐事件(此问题底部使用JSON模式完整描述)是一个对象,用于存储数据,例如事件发生的地点,事件的时间/日期和事件的成本。现场音乐事件对象具有一对一(事件->名称,事件->描述)和一对多(事件->场所,事件->日期,事件->票证类型) )关系。此外,事件对象可以包含一个或多个执行者ID,这些ID链接到执行者对象。表演者对象存储有关在现场音乐事件中表演的音乐家的数据。 用户将使用简单数据(“以'x'名称为我查找事件”)和复杂数据(以'x'音乐体裁为'y'事件并在距我当前半径'z'范围内以'y'为代价的事件来查询数据)位置”)查询。数据将由用户使用Web表单提交。 从定义的JSON模式中可以看出,我本来打算使用JSON对象存储此数据,但是我听到有些人说,因为我的数据是纯关系型的,所以我应该坚持使用较旧的方法。 鉴于我的需要,我希望对每种方法的利弊有任何想法。如果您需要任何澄清,请随时询问。 { "event": { "eventID":{ "type":"string" }, "eventType":{ "type":"array", "eventTypeItem":{ "type":"string" } }, "eventName":{ "type":"string" }, "eventDescription":{ "type":"string" }, "eventVenueList":{ "type":"array", "eventVenueListID":{ "type":"integer" } }, "eventURL":{ "type":"string" }, "eventTwitter":{ "type":"string" }, "eventFB":{ "type":"string" }, "eventInstagram":{ "type":"string" }, "eventEmail":{ "type":"string", "format":"email" }, "eventContactPerson":{ "type":"string" }, …
28 design  sql  json 

3
从JSON API返回HTML是否可以?
在我当前的项目中,我负责服务的实现,该服务涉及使用新创建的RESTful API,这些文档记录为仅支持JSON。 客户端始终使用“ application / json”的接受标头和“ application / json”的内容类型发出请求。但是,某些端点会发送带有HTML内容类型的响应,甚至是HTML正文。对我来说,这显然是错误的方法,永远无法辩解。 在整个项目中,相同的做法已应用于两个不同的供应商和两个不同的服务。我发现自己必须证明为什么需要更改服务。供应商表示,客户端应对此进行处理,甚至我选择的REST库也受到了质疑(RestEasy),因为默认情况下它不应对此问题。 这是一个主要的挫败点。我找不到很多引用来支持我的论点,我认为这是因为要点很明显,所以没有意义。 问题是,我缺少什么吗?我对此很腐吗?在这种情况下,可以使用不具有application / json内容类型的JSON API吗?参考将不胜感激。您如何从商业角度解决这种情况?

4
当我有JSON时,Odata有什么需求?
我试图了解Odata的意义以及何时才有意义。现在,我的工作方式是使用ASP.NET和MVC / WebApi控制器将对象序列化/反序列化为JSON,并让javascript对其进行处理。 据我所知,OData的优点是能够直接从URL查询...但是由于我正在编写客户端和服务器代码,因此不需要这样做。 有人会用JavaScript解析ODaya查询的结果吗? 也许OData更多地是为所有客户端提供通用终结点,以便从JSON不提供的查询中获取详细信息?因此,如果我是数据提供者,那么我想那是odata的作用吗? 帮助我了解REST / JSON / ODATA的目的和用途。
23 javascript  rest  json 

4
键值对使用哪种JSON结构?
对于键值对,哪种JSON格式是更好的选择,为什么? [{"key1": "value1"}, {"key2": "value2"}] 要么: [{"Name": "key1", "Value": "value1"}, {"Name": "key2", "Value": "value2"}] 要么: {"key1": "value1", "key2": "value2"} 第一个变体看起来更紧凑,更“有意义”。第二个变体看起来结构更均匀,可能有助于处理它。第三个变体似乎更具语义。 键值对将用于将任意数据附加到其他项目。数据必须序列化为JSON才能在系统中四舍五入。
23 json 

2
登录JSON对性能的影响
我看到越来越多的有关登录JSON的文章。您也可以在NodeJS博客上找到一个。为什么每个人都这么喜欢它?我只能看到更多的操作参与其中: 正在创建几个新对象。 字符串化对象,涉及计算字符串长度或多个字符串分配。 GC创建的所有废话。 使用JSON日志记录和常规字符串日志记录时,是否有任何性能测试?人们在企业项目中是否使用JSON(用于记录)?
22 logging  json 

1
为什么Microsoft的库依赖Newtonsoft.Json?
这可能是从Microsoft创建ASP.NET Web API库开始的,至少是在我没有记错的情况下记住它的时候。无论如何,从那时起,它的HTTP包就开始依赖于Newtonsoft.Json库进行数据往返于JSON的反序列化。 为什么像微软这样大的公司会增加对开源库的依赖?即使他们当时将使用.NET完全开源,我也觉得很奇怪,因为据我所知,它一直是唯一的非Microsoft库,用作依赖项。 作为一个奖励问题,詹姆斯·牛顿·金会从微软获得任何财务支持吗?
18 .net  asp.net  json  web-api 

4
前端开发人员是否应该为后端开发人员指定JSON格式?
我在一个项目中担任前端角色。是否应该为我的后端团队成员指定他们的PHP返回我的JavaScript的JSON确切格式? 例如,我应该告诉他们,他们应该使用类似于此处所述的格式: 构造JSON以便前端使用的正确方法 还是应该尽可能地保持角色的无菌,只用文字描述我从后端接口需要的输入和输出?(当然,如果发生这种情况,就我而言,处理它们的不同数据结构格式可能会更加困难)

2
如何用JSON表示集合?
JSON支持以下数据结构(等同于Java):标量,数组/列表和映射。 一个Set不支持出的现成的JSON。 我考虑了几种用JSON表示集合的方法: [1]-作为列表 然而,名单都有自己的排序,所以下面的两个列表,["a", "b"]并且["b", "a"]是不相等的名单,但他们应该是平等的套。 [2]-作为地图 使用地图的键集,并忽略值。 但是再次,使用标准比较,两者与地图不同: {"a": "foo", "b": "bar"}, {"a": null, "b": null} [3]-作为地图,具有特殊价值 取一个标量,说0或说,null并使其成为地图中每个键的值: {"a": 0, "b": 0} 这样,即使更改了键顺序,在标准比较工具下,对象也是相等的。 但是,此技术会使用不相关的数据污染JSON文档。 [4]-作为有序列表 回到第一个建议,但是这次作为有序列表。这种解决比较问题。 但是,我们还应该记住排序的复杂性,并且映射符号可以处理重复项,而排序列表则不能。例: {"a": 400, "a": 9}被处理为{"a": 9},但["g", "g"]总是这样["g", "g"]。 说了这么多,在我看来,列表符号更清晰了,但是映射符号对键重复更健壮,并且很难使特殊值保持一致(尽管这null似乎是一个不错的选择)。 你怎么看?您将如何用JSON表示集合? 聚苯乙烯 请注意,这个问题仅与JSON有关。我知道可以使用其他格式,例如yaml。仍然...

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.