Ano ang tamang uri ng nilalaman ng JSON?

Gumugol ako ng i>JSON , itinutulak ko ito bi>

Nakakita ako ng napakaraming diumano'y "mga pamantayan" para sa uri ng nilalaman ng JSON:

 application/json application/x-javascript text/javascript text/x-javascript text/x-json 

Ngunit ano ang tama o mas mabuti? Naiintindihan ko na sa pagitan nila ay may mga problema sa seguridad at suporta sa browser.

Alam kong may katulad na tanong. Ano ang uri ng MIME kung ang JSON ay ibinalik ng REST API? ngunit nais ko ang isang bahagyang mas pokus na sagot.

9470
25 янв. itakda ni Oli Jan 25 2009-01-25 18:25 '09 sa 18:25 2009-01-25 18:25
@ 38 sagot
  • 1
  • 2

Para sa JSON text:

application/json

Ang uri ng MIME ng media para sa JSON text ay application/json . Ang default na encoding ay UTF-8. (Pinagmulan: RFC 4627 ).

Para sa JSONP (executable javascript) na may callback:

application/javascript

Narito ang i>

9468
25 янв. Sumagot si Gumbo Jan 25 2009-01-25 18:27 '09 sa 18:27 2009-01-25 18:27

Nakarehistro ang IANA ng opisyal na uri ng MIME para sa JSON bi>application/json .

Kapag tinanong tungkol sa kung bakit hindi text/json , mukhang sinabi ni Crockford na ang JSON ay hindi talaga JavaScript, ngunit ang teksto, at ang IANA ay malamang na pumasa sa application*" enabled="false"/> </dynamicTypes> <staticTypes> <add mimeType="text*" enabled="false"/> </staticTypes> </httpCompression> <urlCompression doStaticCompression="true" doDynamicCompression="true"/>

Gamit ang mga ito, ang mga pahina ng .aspx ay na-compress na may g-zip, ngunit ang mga tugon ng JSON ay hindi. Idinagdag ko

 <add mimeType="application/json" enabled="true"/> 

sa mga seksyon ng static at dynamic na mga uri. Ngunit hindi ito pinagsasama ng mga tugon ni JSON.

Pagkatapos nito, tinanggal ko ang bagong idinagdag na uri at idinagdag

 <add mimeType="application/x-javascript" enabled="true"/> 

sa mga seksyon ng static at dynamic na mga uri at binago ang uri ng tugon sa

.ashx (asynchronous handler) sa

 application/x-javascript 

At ngayon nakita ko na ang aking mga tugon sa JSON ay g-zip na naka-compress. Samakatuwid, personal kong inirerekumenda ang paggamit

 application/x-javascript 

lamang kung nais mong i-compress ang iyong mga tugon sa JSON sa isang pampublikong hosting na kapaligiran . Dahil hindi nila pinapayagan kang baguhin ang mga configuration ng IIS sa shared hosting.

282
18 апр. ang sagot ay ibinigay ng shashwat 18 apr. 2012-04-18 11:22 '12 sa 11:22 2012-04-18 11:22

Lamang kapag gumagamit ng application/json bi>MIME mayroon akong mga sumusunod (mula noong Nobyembre 2011 kasama ang mga pinakabagong bersyon ng Chrome, Firefox na may Firebug ):

  • Wala nang mga babala mula sa Chrome kapag nagda-download ng JSON mula sa server.
  • Ang Firebug ay magdaragdag ng isang tab sa tugon na nagpapakita sa iyo ng data na na-format na JSON. Kung naiiba ang uri ng MIME, ipapakita ito bi>
257
30 нояб. Ang sagot ay ibinigay ni Ivo Limmen Nobyembre 30. 2011-11-30 09:42 '11 sa 9:42 2011-11-30 09:42

Hindi gumagana ang lahat para sa uri ng application/json .

Kung gumagamit ka ng Ext JS upang magpadala ng isang file, tandaan na ang tugon ng server ay sinusuri ng browser upang lumikha ng isang dokumento para sa <iframe> .

Kung ang server ay gumagamit ng JSON upang ipadala ang ibinalik na bagay, dapat na itakda ang header ng Content-Type sa text/html upang sabihin sa browser na magpasok ng teksto nang wa>

Tingnan ang Ext JS 3.4.0 API documentation .

232
07 сент. Sumagot si Conan Sept. 07 2011-09-07 05:41 '11 at 5:41 am 2011-09-07 05:41

Ang JSON ay isang wika ng wika (DSL) at format ng data na independiyenteng ng JavaScript, at sa gayon ay may sariling MIME , application/json . Ang pagga>text/plain upang maglipat ng mga byte, ngunit pagkatapos ay hindi mo kai>application/json . Nagpapasa ka ba ng XML sa pamamagitan ng text/plain ?

Ngunit lantaran, ang iyong pagpili ng uri ng MIME ay payo sa kliyente kung paano i-interpret ang data - text/plain o text/HTML (kapag hindi ito HTML) -nagpapawi ng mga estilo - ito ay hindi mapag-unawa, tulad ng paglikha ng lahat ng iyong Mga Bagay sa isang nai-type wika.

Kaku>Ang mga serbisyo ng RESTful JSON ay madalas na wa>Ajax .

Application / JSON!

217
15 мая '12 в 1:19 2012-05-15 01:19 ang sagot ay ibinigay ng VLostBoy Mayo 15, '12 sa 1:19 2012-05-15 01:19

Kung nasa isang client-side na kapaligiran, kinakai>

Ang tamang Content-Type ng HTTP ay magiging application/json , dahil ang iba ay inilalaan rin, ngunit ang i>text/html .

201
27 апр. Ang sagot ay ibinigay ni Emanuele Del Grande 27 Abr. 2012-04-27 19:27 '12 sa 07:27 2012-04-27 19:27

Ang tamang sagot ay:

 Content-Type: application/json 
159
31 дек. ang sagot ay ibinigay ni Irfan DANISH 31 dec. 2012-12-31 09:29 '13 sa 9:29 2012-12-31 09:29

Tulad ng marami pang iba, ang application/json ang tamang sagot.

Ngunit hindi pa ito ipinaliwanag kung ano ang ibig sabihin ng iba pang mga pagpipilian na iyong inaalok.

  • application/x-javascript : Uri ng eksperimentong MIME para sa JavaScript bago ang standard application/javascript .

  • text/javascript : ngayon ay hindi na ginagamit. Dapat mong gamitin ang application/javascript kapag gumagamit ng javascript.

  • text/x-javascript : Uri ng Eksperimento MIME para sa sitwasyon sa itaas.

  • text/x-json : uri ng pang-eksperimentong MIME para sa JSON bago natanggap ang application/json opisyal na pagpaparehistro.

Sa pangkalahatan, kapag may mga pagdududa ka tungkol sa mga uri ng nilalaman, dapat mong suriin ang link na ito.

156
02 апр. ang sagot ay ibinigay fcm 02 Abr 2013-04-02 14:10 '13 sa 14:10 2013-04-02 14:10

Sa JSP, maaari mong gamitin ito sa direktiba sa pahina:

 <%@ page > 

Ang tamang uri ng MIME para sa JSON ay ang application/json . Gagamitin ito ng JSP upang magpadala ng tugon sa kliyente.

139
19 янв. ang sagot ay binigyan ng haring 19 jan. 2013-01-19 11:22 '13 sa 11:22 2013-01-19 11:22

" application/json " ang tamang uri ng nilalaman ng JSON.

 def ajaxFindSystems = { def result = Systems.list() render(contentType:'application/json') { results { result.each{sys-> system(id:sys.id, name:sys.name) } } resultset (rows:result.size()) } } 
108
26 февр. Ang sagot ay ibinigay ng Sukane noong Pebrero 26. 2013-02-26 14:55 '13 sa 14:55 2013-02-26 14:55

Ang pagpaparehistro ng IANA para sa application/json sabi ni application/json

Mga application na gumagamit ng ganitong uri ng media: JSON ay ginamit upang makipagpalitan ng data sa pagitan ng mga application na nakasulat sa lahat ng mga programming >

Mapapansin mo na ang IANA.org ay hindi naglilista ng alinman sa iba pang mga uri ng media , sa katunayan kahit ang application/javascript ay lipas na sa panahon. Kaya, ang application/json ay talagang ang tanging tamang sagot.

Ang suporta sa browser ay isa pang bagay.

Ang pinaka-karaniwan na di-karaniwang mga uri ng media ay ang text/json o text/javascript . Ngunit ang i>text/plain .

Kahit na estranghero ay ang header ng Uri ng Nilalaman na ipinadala ng Flickr, na nagbabalik ng JSON bi>text/xml . Ang Google ay gumagamit ng text/javascript para sa ilan sa kanila ajax apis.

Mga halimbawa:

 curl -I "https://ajax.googleapis.com/ajax/services/search/video?v=1.0> 

Output: Content-Type: text/javascript

 curl -I "https://www.flickr.com/services/rest/?method=flickr.test.echo> 

Output: Content-Type: text/xml

98
12 февр. Sumagot na ibinigay ni Jhawins Peb 12 2014-02-12 19:12 '14 sa 19:12 2014-02-12 19:12

Ang tamang uri ay MIME application/json

NGUNIT

Nakaranas ako ng maraming sitwasyon kapag kai>

 text/html application/javascript 
83
03 мая '13 в 19:00 2013-05-03 19:00 ang sagot ay ibinigay LombaX 03 Mayo '13 sa 19:00 2013-05-03 19:00

Ginagamit ko sa ibaba

 contentType: 'application/json', data: JSON.stringify(SendData), 
70
16 мая '13 в 15:43 2013-05-16 15:43 ang sagot ay ibinigay ni Andro noong Mayo 16 '13 sa 15:43 2013-05-16 15:43

Ang pamagat ng pamagat ng Uri ng Nilalaman ay dapat itakda sa application / json kapag nag-publish. Ang server sa pakikinig sa kahilingan ay dapat isama ang " Accept = application / json ". Sa Spring MVC, magagawa mo ito tulad ng sumusunod:

 @RequestMapping(value="location", method = RequestMethod.POST, headers = "Accept=application/json") 

Magdagdag ng mga header sa tugon:

 HttpHeaders headers = new HttpHeaders(); headers.add("Content-Type", "application/json"); 
62
09 авг. Sumagot na ibinigay ni Alexander Burakevych Agosto 09. 2013-08-09 13:49 '13 sa 13:49 2013-08-09 13:49

Sa Spring , mayroon kang isang partikular na uri: MediaType.APPLICATION_JSON_VALUE , na katumbas ng application / json.

55
29 июня '13 в 11:34 2013-06-29 11:34 ang sagot ay ibinigay ni Chand Priyankara noong Hunyo 29 '13 sa 11:34 2013-06-29 11:34

Gumagana ang application/json sa PHP para sa pag-iimbak ng isang array o data object.

Ginagamit ko ang code na ito upang ilagay ang data sa JSON sa Google Cloud Storage (GCS) , na naka-set sa publiko na magagamit para sa pagtingin :

 $context = stream_context_create([ 'gs' => [ 'acl'=>'public-read', 'Content-Type' => 'application/json', ] ]); file_put_contents( "gs://BUCKETNAME/FILENAME.json", json_encode((object) $array), false, $context ); 

Upang bumalik nang direkta ang data:

 $data = json_decode(file_get_contents("gs://BUCKETNAME/FILENAME.json")); 
55
01 апр. Ang sagot ay ibinigay Chetabahana Abril 01. 2015-04-01 19:13 '15 sa 19:13 2015-04-01 19:13

Para sa JSON gagamitin ko:

  Content-Type: application/json 

Inilarawan ito sa IETF JSON Data Interchange Format 7158 na sugnay, Seksyon 1.2: Mga pagtutukoy ng JSON .

47
06 февр. Ang sagot ay ibinigay ni Mehmet_ 06 Peb. 2015-02-06 15:01 '15 sa 15:01 2015-02-06 15:01

Kung ang populasyon ay JSON, ito ay magiging application/jsonp . Kung wa>application/json .

Upang makayanan ang mga ito, inirerekuminda na gamitin ang: "application / javascript", nang hindi nababahala tungkol sa kung mayroon o wa>

47
21 июня '13 в 18:22 2013-06-21 18:22 ang sagot ay ibinigay ni Ankit Zalani noong Hunyo 21, '13 sa 6:22 2013-06-21 18:22

Pagpapalawak ng natanggap na tugon kapag ginamit mo ang JSON sa konteksto ng REST ...

May isang malakas na malakas na argumento tungkol sa paggamit ng application/x-resource+json at application/x-collection+json kapag nagtatanghal ka ng mga mapagkukunan at REST na koleksyon.

At kung magpasya kang sundin ang pagtutukoy ng jsonapi , dapat mong gamitin ang application/vnd.api+json bi>

Kahit na wa>application/json .

Kasunod ng mga pagsasaa>

40
09 июня '15 в 22:12 2015-06-09 22:12 ang sagot ay ibinigay jgomo3 Hunyo 09, '15 sa 10:12 pm 2015-06-09 22:12

Ginagamit ng mga developer ng PHP na ito:

 <?php header("Content-type: application/json"); // Do something here... ?> 
39
29 марта '14 в 8:43 2014-03-29 08:43 ang sagot ay ibinigay ng user3087089 Marso 29 '14 sa 8:43 2014-03-29 08:43

Kung makuha mo ang data mula sa REST API sa JSON, kaya kai>

 For JSON data: Content-Type:application/json For HTML data: Content-Type:text/html, For XHTML data: Content-Type:application/xhtml+xml, For XML data: Content-Type:text/xml, application/xml 
37
11 апр. Sumagot na ibinigay ni Krishna noong Abril 11 2016-04-11 12:15 '16 sa 12:15 pm 2016-04-11 12:15

Ang JSON (JavaScript Object Designation) at JSONP ("JSON with padding") ay mukhang katulad na katulad, at samakatuwid ito ay maaaring maging lubhang nakalilito kung anong uri ng MIME ang dapat ni>

Samakatuwid, sa tuwing nag-aalin>

JSON RFC 4627 (Uri ng Application / json Media para sa pagdidisenyo ng JavaScript Objects (JSON)) ay isang detalye ng format ng JSON. Ang Seksiyon 6 ay nagpapahayag na ang uri ng MIME na multimedia para sa JSON na teksto

 application/json. 

Ang JSONP JSONP ("JSON na may add-on") ay nai-proseso nang iba kaysa sa JSON sa browser. Ang JSONP ay itinuturing bi>application/javascript, kasalukuyang opisyal na uri ng MIME para sa JavaScript. Gayunman, sa maraming pagkakataon, ang uri ng text/javascript MIME ay gagana nang maayos.

Pakitandaan na ang text/javascript ay minarkahan bi>RFC 4329 (Uri ng Mga Uri ng Scripting), at inirerekomenda na gamitin ang application/javascript halip. Gayunpaman, dahil sa minanang mga kadahilanan, ang text/javascript ay malawak na ginagamit at sumusuporta sa cross-browser (na hindi palaging ang uri ng application/javascript MIME, lalo na sa mas lumang mga browser).

23
15 февр. sagot na ibinigay ni Iresha Rubasinghe noong Pebrero 15. 2016-02-15 06:20 '16 sa 6:20 2016-02-15 06:20

Content-Type: application/json - JSON
Content-Type: application/javascript - json-P
Content-Type: application/x-javascript - javascript
Content-Type: text/javascript - javascript, PERO hindi na napapanahon, mas lumang mga bersyon ng IE, na ginamit upang magamit bi> Content-Type: text/x-javascript - Mga Uri ng JavaScript sa JavaScript NGUNIT Hindi na ginagamit
Content-Type: text/x-json - json bago ang opisyal na pagpaparehistro ng application / json.

22

Iba pang mga katanungan tungkol sa tags o Magtanong ng isang katanungan