නිවැරදි JSON අන්තර්ගත වර්ගය කුමක්ද?


10257

මම කාලයක් තිස්සේ JSON සමඟ අවුල් කරමින් සිටිමි , එය පෙළ ලෙස පිටතට තල්ලු කර ඇති අතර එය කිසිවෙකුට හානියක් කර නැත (මා දන්නා), නමුත් මම නිසි ලෙස දේවල් ආරම්භ කිරීමට කැමතියි.

මම දැක තිබෙනවා එසේ වූ JSON අන්තර්ගතයේ වර්ගය සඳහා බොහෝ වූ බවට සැලකෙන "ප්රමිතීන්":

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

නමුත් නිවැරදි හෝ හොඳම දේ කුමක්ද? ආරක්ෂාව සහ බ්‍රව්සර් ආධාරක ගැටලු අතර වෙනස් වන බව මම රැස් කරමි.

ඒ හා සමාන ප්‍රශ්නයක් ඇති බව මම දනිමි , JSON REST API මඟින් ආපසු ලබා දෙන්නේ නම් කුමන MIME වර්ගයද? , නමුත් මම තරමක් ඉලක්කගත පිළිතුරකට කැමතියි.

Answers:


10311

JSON පෙළ සඳහා:

application/json

JSON පෙළ සඳහා MIME මාධ්‍ය වර්ගය වේ application/json. පෙරනිමි කේතන ක්‍රමය UTF-8 වේ. (මුලාශ්‍රය: RFC 4627 ).

සඳහා JSONP : (runnable ජාවාස්ක්රිප්ට්) callback සමග

application/javascript

අදාළ අදහස් දැක්වීම්වල සඳහන් බ්ලොග් සටහන් කිහිපයක් මෙන්න.



මට Json පෙළ එකට ගොනුවක් යැවිය හැකිද?
OPV

7
ඉන්ටර්නෙට් එක්ස්ප්ලෝරර් සමහර විට යෙදුම / json සමඟ ගැටළු ඇති කරයි - බ්ලොගය නොබැඳි
kudlatiger

6
යමෙක් විසින් ලියන ලද ලේඛනයක් මා සතුව ඇතැයි සිතන්න. දැන් එම සරල පා valid ය වලංගු JSON ද වේ. පෙළ / සරල එහි මයිම් වර්ගය ලෙස භාවිතා කිරීම වැරදියි ද? JSON යනු පෙළෙහි SUB-TYPE ය. ඒ නිසා මම හිතන්නේ දෙකටම ඉඩ දිය යුතුයි. ප්රශ්නය වන්නේ ප්රායෝගිකව වඩා හොඳින් ක්රියා කරන්නේ කුමක්ද යන්නයි. කෝඩෙටෝෂෙයාර්ගේ අදහස් වලට අනුව IE හට යෙදුම / json සමඟ ගැටළු ඇත. නමුත් කිසිදු බ්‍රව්සරයකට පෙළ / සරල සමඟ ගැටලු නොවිය යුතුය. පෙළ / සරල අනාරක්ෂිත නම් මගේ වෙබ් අඩවියෙන් පෙළ ලිපිගොනු සේවය කරන්නේ කෙසේද?
Panu Logic

5
Ug ඉයුජන් මිහයිල්ස්කු එම පිටුවේ මාතෘකාව “අසම්පූර්ණ MIME වර්ග ලැයිස්තුවයි”
ඔමේගාස්ටික්

1617

IANA විසින් JSON සඳහා නිල MIME වර්ගය ලියාපදිංචි කර ඇත application/json.

එසේ නොවන්නේ මන්දැයි විමසූ විට text/jsonක්‍රෝක්ෆර්ඩ් පවසා ඇත්තේ JSON සැබවින්ම ජාවාස්ක්‍රිප්ට් හෝ පෙළ නොවන බවත් IANA භාරදීමට application/*වඩා වැඩි text/*බවත්ය.

තවත් සම්පත්:


166
දේවල් ගොඩක් බවට පත් වී text/*බොහෝ විට බවට පත් කළ යුතු බව මුල් කාලයේ දී කොටස application/*මේ දවස් කොටස.
TRiG

29
Oh රෝමර් - ඔබට පෙළ සංස්කාරකයකින් ඕනෑම දෙයක් විවෘත කළ හැකිය, නමුත් JPEG හෝ වින්ඩෝස් .exe හෝ .zip වැනි ද්විමය ආකෘතියක් මුද්‍රණය කළ නොහැකි අක්ෂර අඩංගු වන අතර එමඟින් බොහෝ පෙළ සංස්කාරකවරුන් බිඳ දැමිය හැකිය. cat file.jpgඋදාහරණයක් ලෙස ධාවනය කිරීමට උත්සාහ කරන්න . ඕනෑම xml හෝ json ගොනුවක් 100% මුද්‍රණය කළ හැකි ය. ඉතින් මම හිතන්නේ ස්ටිජන් ඩි විට්ගේ අදහස වලංගු එකක්, ඔව්, දැන් වෙනස් වීමට ප්‍රමාද වැඩියි.
XP84

4
@ XP84 ඔබට පෙළ සංස්කාරකයක් සහිත ඕනෑම ද්විමයක් HEX ආකාරයෙන් විවෘත කළ හැකිය. තවද විවිධ අක්ෂර (ඒවායින් 16) 100% මුද්‍රණය කළ හැකිය. ඉතින්, එම තර්කනය අනුව ... සියල්ලම ද්විමය පා text ද? ජේසන් පෙළ නොවේ. Json යනු (අනතුරු ඇඟවීම: අවිධිමත් ලිහිල් අර්ථ දැක්වීම ඉදිරියෙන්) වස්තුවක පෙළ නිරූපණයකි (හෝ වස්තු සමූහයක්)
xDaizu

5
"HEX ස්වරූපයෙන් පෙළ සංස්කාරකයක්" යන වාක්‍ය ඛණ්ඩයට කිසිදු අර්ථයක් නොමැත. හෙක්ස් සංස්කාරකය සෑම බයිටයක්ම එහි ෂඩාස්රාකාර අගය ලෙස පෙන්වයි, උදාහරණයක් ලෙස 1111000 බයිට් "78" ලෙස දක්වයි. හෙක්ස් සංස්කරණ මාදිලියක් ඇති සමහර පෙළ සංස්කාරකවරුන් සිටිය හැකි නමුත්, මෙය කිසිඳු දෙයකට පොදු හෝ ප්‍රයෝජනවත් නොවේ, නමුත් වඩාත්ම තාක්ෂණික පරිශීලකයින් වඩාත්ම තාක්ෂණික කාර්යයන් කරයි. පෙළ, සංසන්දනය කිරීමෙන්, ASCII හෝ යුනිකෝඩ් යන්නෙන් අදහස් වන අතර, පෙළෙහි 1111000 යන්නෙන් අදහස් වන්නේ කුඩා xඅකුරු ය. 78 නොවේ. JSON යනු HTML (පෙළ / html) හා සමාන ආකාරයකින් පෙළකි. එහි අඩංගු වන්නේ කියවිය හැකි පෙළ අක්ෂර පමණක් වන අතර ඒවායේ ව්‍යුහාත්මක අර්ථයක් ඇත.
XP84

11
මම ස්ටිජන් ඩි විට් සමඟ එකඟ වීමට නැඹුරු වෙමි. JSON යනු පෙළ සංස්කාරකයක් සමඟ බැලීමට හා සංස්කරණය කිරීමට අදහස් කරයි.
පනු ලොජික්


632

ඇත්ත වශයෙන්ම, JSON සඳහා නිවැරදි MIME මාධ්‍ය වර්ගය application/json, නමුත් ඔබේ යෙදුමේ අපේක්ෂා කරන්නේ කුමන ආකාරයේ දත්තද යන්න වටහා ගැනීම අවශ්‍ය වේ.

උදාහරණයක් ලෙස, මම Ext GWT භාවිතා කරන අතර සේවාදායක ප්‍රතිචාරය පෙළ / html ලෙස යා යුතු නමුත් JSON දත්ත අඩංගු වේ.

සේවාදායකයාගේ පැත්ත, අමතර GWT පෝරම සවන්දෙන්නන්

uploadForm.getForm().addListener(new FormListenerAdapter()
{
    @Override
    public void onActionFailed(Form form, int httpStatus, String responseText) 
    {
        MessageBox.alert("Error");
    }

    @Override
    public void onActionComplete(Form form, int httpStatus, String responseText) 
    {
        MessageBox.alert("Success");
    }
});

යෙදුම / json ප්‍රතිචාර වර්ගය භාවිතා කිරීමේදී, ගොනුව සුරැකීමට බ්‍රව්සරය මට යෝජනා කරයි.

වසන්ත එම්වීසී භාවිතා කරමින් සේවාදායක පැති ප්‍රභව කේත ස්නිපටය

return new AbstractUrlBasedView() 
{
    @SuppressWarnings("unchecked")
    @Override
    protected void renderMergedOutputModel(Map model, HttpServletRequest request,
                                           HttpServletResponse response) throws Exception 
    {
        response.setContentType("text/html");
        response.getWriter().write(json);
    }
};

7
සේවාදායක ප්‍රතිචාරය පෙළ / html ලෙස යා යුතුය. ExtJS ප්‍රභේදය සඳහාද මෙය සත්‍ය වේ.
gbegley

463

JSON:

URL හි සම්මත විමසුම් පරාමිතීන්ට අනුව ප්‍රතිචාරය ගතිකව ජනනය කරන ලද දත්ත වේ.

උදාහරණයක්:

{ "Name": "Foo", "Id": 1234, "Rank": 7 }

අන්තර්ගතයේ වර්ගය: application/json


JSON-P:

පෑඩින් සමඟ JSON. ප්‍රතිචාරය යනු JSON දත්ත වන අතර එය ක්‍රියාකාරී ඇමතුමක් වටා එති.

උදාහරණයක්:

functionCall({"Name": "Foo", "Id": 1234, "Rank": 7});

අන්තර්ගතයේ වර්ගය: application/javascript


46
JSON හි අර්ථ දැක්වීම වැරදිය. එය ගතිකව ජනනය කිරීම හෝ විමසුම් පරාමිතීන්ට ගරු කිරීම අවශ්‍ය නොවේ. ඔබට ස්ථිතික JSON ගොනුවක් සේවය කළ හැකිය. එසේම, වඩාත්ම උඩු යටිකුරු කළ පිළිතුරට RFC සමඟ සම්බන්ධයක් ඇත.
ස්ටයිෆල්

10
JSONP යනු var ට පවරා ඇති json දත්ත විය හැකිය.
ජිමී කේන්

401

ඔබ උබුන්ටු හෝ ඩේබියන් භාවිතා කරන්නේ නම් සහ ඔබ අපාචේ හරහා .json ගොනු සේවය කරන්නේ නම්, ඔබට නිවැරදි අන්තර්ගත වර්ගය සමඟ ලිපිගොනු සේවය කිරීමට අවශ්‍ය විය හැකිය. මම මෙය කරන්නේ මූලික වශයෙන් මට ෆයර්ෆොක්ස් දිගුව JSONView භාවිතා කිරීමට අවශ්‍ය නිසාය

Apache මොඩියුලය mod_mime මෙය පහසුවෙන් කිරීමට උපකාරී වේ. කෙසේ වෙතත්, උබුන්ටු සමඟ ඔබට /etc/mime.types ගොනුව සංස්කරණය කර රේඛාව එක් කළ යුතුය

application/json json

ඉන්පසු Apache නැවත ආරම්භ කරන්න:

sudo service apache2 restart

44
සාමාන්‍යයෙන් නැවත පූරණය කිරීම ප්‍රමාණවත් වේ (නැවත ආරම්භ කිරීමට වඩා වේගවත්). එසේම, ඔබට දැන් "sudo service apache2 reload" කළ හැකි බව සලකන්න.
noamtm

19
උබුන්ටු 12.04 හි මෙය පෙරනිමියෙන් ඇත
ප්‍රයිසොෆ්

386

ඔබ සේවාදායකයාගේ පැත්තෙන් ASP.NET වෙබ් සේවා අමතන්නේ නම් application/jsonඑය ක්‍රියාත්මක වීමට ඔබ භාවිතා කළ යුතුය. JQuery සහ Ext රාමු සඳහා මෙය සමාන යැයි මම විශ්වාස කරමි .


20
jQuery අවම වශයෙන් 'යෙදුම / ජේසන්' සහ 'පෙළ / සරල' සමඟ ක්‍රියා කරන බව පෙනේ ... මම අනෙක් සියල්ලම උත්සාහ කර නැත.
නේතන්

jQuery සමඟ ක්රියා කිරීමේ හැකියාව ඇත content-Type: text/plain, content-Type: application/json, content-Type: application/json; charset=UTF-8, contentType: "application/x-www-form-urlencoded; charset=UTF-8"
Ashraf.Shk786


296

application/jsonඑය හොඳම MIME බවට සැකයක් නැතJSON ප්‍රතිචාරයක් සඳහා වර්ගය .

නමුත් application/x-javascriptසමහර සම්පීඩන ගැටළු නිසා මට භාවිතා කිරීමට සිදු වූ අත්දැකීම් මට තිබුණි . මගේ සත්කාරක පරිසරය GoDaddy සමඟ බෙදාගැනීම . සේවාදායක වින්‍යාසයන් වෙනස් කිරීමට ඔවුන් මට ඉඩ නොදේ. web.configප්‍රතිචාර සම්පීඩනය කිරීම සඳහා මම පහත කේතය මගේ ගොනුවට එකතු කර ඇත්තෙමි .

<httpCompression>
    <scheme name="gzip" dll="%Windir%\system32\inetsrv\gzip.dll"/>
    <dynamicTypes>
        <add mimeType="text/*" enabled="true"/>
        <add mimeType="message/*" enabled="true"/>
        <add mimeType="application/javascript" enabled="true"/>
        <add mimeType="*/*" enabled="false"/>
    </dynamicTypes>
    <staticTypes>
        <add mimeType="text/*" enabled="true"/>
        <add mimeType="message/*" enabled="true"/>
        <add mimeType="application/javascript" enabled="true"/>
        <add mimeType="*/*" enabled="false"/>
    </staticTypes>
</httpCompression>
<urlCompression doStaticCompression="true" doDynamicCompression="true"/>

මෙය භාවිතා කිරීමෙන් .aspx පිටු g-zip සමඟ සම්පීඩිත වූ නමුත් JSON ප්‍රතිචාර එසේ නොවීය. මම එකතු කලා

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

ස්ථිතික හා ගතික වර්ගවල. නමුත් මෙය JSON ප්‍රතිචාර කිසිසේත් සම්පීඩනය නොකරයි.

ඊට පස්සේ මම මේ අලුතින් එකතු කළ වර්ගය ඉවත් කර එකතු කළා

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

ස්ථිතික හා ගතික වර්ග දෙකෙහිම, සහ ප්‍රතිචාර වර්ගය වෙනස් කර ඇත

.ashx (අසමමුහුර්ත හසුරුවන්නා) සිට

application/x-javascript

දැන් මගේ JSON ප්‍රතිචාර g-zip සමඟ සම්පීඩිත බව මට පෙනී ගියේය. එබැවින් මම පෞද්ගලිකව භාවිතා කිරීමට නිර්දේශ කරමි

application/x-javascript

හවුල් සත්කාරක පරිසරයක් තුළ ඔබේ JSON ප්‍රතිචාර සම්පීඩනය කිරීමට ඔබට අවශ්‍ය නම් පමණි . හවුල් සත්කාරකයේදී, IIS වින්‍යාසයන් වෙනස් කිරීමට ඒවා ඔබට ඉඩ නොදේ .


11
"එබැවින් මම පුද්ගලිකවම යෙදුම / x-javascript භාවිතා කිරීමට නිර්දේශ කරමි" යනු මෙම පිළිතුර නොමඟ යවන ස්ථානයකි. GoDaddy කරන්නේ සම්පීඩ්යතා ඉඩ application/jsonමගේ හවුල් සත්කාරක සහ එය හුදෙක් වැරදියි, මම කෙසේ හෝ සම්පීඩන සක්රීය කිරීම වෙනස් අන්තර්ගතයේ වර්ගය භාවිතා යෝජනා නැහැ, මම ලීවරය එය. එය කළ හැකි නමුත් එය තවමත් වැරදිය. බ්‍රව්සර් සහාය සඳහා විවිධ අන්තර්ගත වර්ග භාවිතා කිරීම එක් දෙයකි, සේවාදායක පාර්ශවීය සම්පීඩනය සඳහා විවිධ අන්තර්ගත වර්ග භාවිතා කිරීම තවත් දෙයකි.

269

මා සතුව application/jsonඇත්තේ MIME වර්ගය ලෙස භාවිතා කරන විට පමණි (2011 නොවැම්බර් වන විට ක්‍රෝම් හි නවතම අනුවාදයන් සමඟ, ෆයර්ෆොක්ස් ෆයර්බග් සමඟ ):

  • JSON සේවාදායකයෙන් පටවන විට Chrome වෙතින් තවත් අනතුරු ඇඟවීම් නොමැත.
  • ඔබට JSON දත්ත ආකෘතිකරණය කර ඇති බව පෙන්වන ප්‍රතිචාරයට ෆයර්බග් ටැබ් එකක් එක් කරයි. MIME වර්ගය වෙනස් නම්, එය 'ප්‍රතිචාර අන්තර්ගතය' ලෙස පෙන්වනු ඇත.

244

සෑම දෙයක්ම අන්තර්ගත වර්ගය සඳහා ක්‍රියා නොකරයි application/json.

ගොනුව උඩුගත කිරීම සඳහා ඔබ Ext JS පෝරමය ඉදිරිපත් කරන්නේ නම්, ඒ සඳහා ලේඛනය නිර්මාණය කිරීම සඳහා සේවාදායක ප්‍රතිචාරය බ්‍රව්සරය මඟින් විග්‍රහ කර ඇති බව මතක තබා ගන්න <iframe>.

ආපසු එන වස්තුව යැවීමට සේවාදායකයා JSON භාවිතා කරන්නේ නම්, ලේඛනය ශරීරයට නොවෙනස්ව පෙළ ඇතුළත් කිරීමට බ්‍රව්සරයට පැවසීම සඳහා Content-Typeශීර්ෂකය සැකසිය යුතුය text/html.

බලන්න ඔබ මෙතෙක් JS 3.4.0 API ප්රලේඛනය .


40
ප්‍රමිතීන්ට අනුකූල නොවන මෙවලම් හැකි සෑම විටම වළක්වා ගත යුතුය; application/jsonපිරිවිතරයකට භාවිතා කරන්න .
one.beat.consumer

15
true one.beat.consumer එය සත්‍යයක් වන අතර, එය එක්ස්ටෙජ් සඳහා විශේෂිත නොවේ. එය බ්‍රව්සර් සීමාවක් (හෝ, සමහර විට, "ආරක්ෂක පියවරක්").
හෙන්ඩි ඉරවන්

7
HTML නොවන අන්තර්ගතයට කිසිදු HTML අර්ථකථනයක් අදාළ නොවන බැවින් නිසැකවම පෙළ / සරල භාවිතා කිරීම වඩා හොඳද? රාමුවක අන්තර්ගතය DOM නොමැති නම් එය උකහා ගැනීමට බ්‍රව්සර් ඔබට ඉඩ නොදෙන්නේද?
සමමුහුර්ත

5
තවදුරටත් අවුල් සහගත එකතු කිරීම සඳහා: මම පෙරනිමි වෙබ් සමග Samsung Galaxy බීම් (Android 2.3) ඒ හා සමාන නඩුව දෝෂහරණ කරනවා, සහ iframeගිනි පෙනේ loadසඳහා සිදුවීම් application/javascript, application/x-javascript, text/javascript, text/plain, නමුත් නොවේ එය වෙඩි application/jsonවත් text/html. අද වන විට, ඇන්ඩ්‍රොයිඩ් <= 2.3 යනු ඇන්ඩ්‍රොයිඩ් වෙළඳපල කොටසෙන් 50% ක් පමණ වේ.
jakub.g

226

JSON යනු වසම්-විශේෂිත භාෂාවක් (DSL) සහ ජාවාස්ක්‍රිප්ට් වලින් ස්වාධීන දත්ත ආකෘතියකි, එසේම එයට MIME වර්ගයක් application/jsonඇත. MIME වර්ග සඳහා ගරු කිරීම ඇත්ත වශයෙන්ම සේවාදායකයා විසින් මෙහෙයවනු ලබන අතර, text/plainබයිට් මාරු කිරීම සඳහාද එසේ කළ හැකිය, නමුත් එවිට ඔබ අනවශ්‍ය ලෙස විකුණුම්කරුගේ යෙදුම් වසමට අර්ථ නිරූපණය කරනු ඇත - application/json. ඔබ XML හරහා මාරු text/plainකරනවාද?

නමුත් අවංකවම, ඔබ MIME වර්ගය තෝරා ගැනීම සේවාදායකයාට දත්ත අර්ථ නිරූපණය කරන්නේ කෙසේද යන්න පිළිබඳ උපදෙස් වේ- text/plainහෝ text/HTML(එය HTML නොවන විට) වර්ගය මකාදැමීමකට සමාන ය- එය ඔබේ වර්ගයේ වස්තු සියල්ලම ටයිප් කළ භාෂාවකින් සෑදීම තරම් තොරතුරු නොදක්වයි.

මා දන්නා කිසිදු බ්‍රව්සර් ධාවන වේලාවක් JSON ලේඛනයක් ගෙන එය ස්වයංක්‍රීයව ධාවන කාලයට ජාවාස්ක්‍රිප්ට් වෙත ප්‍රවේශ විය හැකි වස්තුවක් ලෙස මැදිහත් වීමකින් තොරව ලබා දෙනු ඇත, නමුත් ඔබ අබලන් වූ සේවාදායකයකු සමඟ වැඩ කරන්නේ නම් එය සම්පූර්ණයෙන්ම වෙනස් කාරණයකි. නමුත් එය සම්පූර්ණ කතාවම නොවේ - RESTful JSON සේවාවන්ට බොහෝ විට JavaScript ධාවන වේලාවන් නොමැත, නමුත් එය JSON භාවිතා කළ හැකි දත්ත හුවමාරු ආකෘතියක් ලෙස භාවිතා කිරීම නවත්වන්නේ නැත. සේවාදායකයින් අබලන් වී ඇත්නම් ... ඒ වෙනුවට මම අජැක්ස් සැකසුම් සේවාවක් හරහා HTML එන්නත් කිරීම සලකා බලමි.

යෙදුම / JSON!


210

ඔබ සේවාදායක පාර්ශවීය පරිසරයක සිටී නම්, හොඳින් සහාය දක්වන වෙබ් යෙදුමක් සඳහා හරස් බ්‍රව්සර් සහාය ගැන සොයා බැලීම අනිවාර්ය වේ.

නිවැරදි HTTP අන්තර්ගත වර්ගය වනු ඇත application/json, අනෙක් ඒවා දැනටමත් උද්දීපනය කර ඇති නමුත් සමහර සේවාදායකයින් එය හොඳින් හසුරුවන්නේ නැත, ඒ නිසා jQuery පෙරනිමිය නිර්දේශ කරයි text/html.



166

තවත් බොහෝ අය සඳහන් කර ඇති පරිදි application/jsonනිවැරදි පිළිතුරයි.

නමුත් තවමත් පැහැදිලි කර නොමැති දෙය නම් ඔබ යෝජනා කළ අනෙක් විකල්පයන් අදහස් කරන්නේ කුමක්ද යන්නයි.

  • application/x-javascript: ජාවාස්ක්‍රිප්ට් සඳහා අත්හදා බැලීමේ MIME වර්ගය application/javascriptසම්මත කිරීමට පෙර .

  • text/javascript: දැන් යල්පැන ඇත. application/javascriptජාවාස්ක්‍රිප්ට් භාවිතා කරන විට ඔබ භාවිතා කළ යුතුය .

  • text/x-javascript: ඉහත තත්වය සඳහා පරීක්ෂණාත්මක MIME වර්ගය.

  • text/x-json: application/jsonනිල වශයෙන් ලියාපදිංචි වීමට පෙර JSON සඳහා පර්යේෂණාත්මක MIME වර්ගය .

සියල්ලට ම, අන්තර්ගත වර්ග පිළිබඳව ඔබට කිසියම් සැකයක් ඇති විට, ඔබ මෙම සබැඳිය පරීක්ෂා කළ යුතුය


15
text/javascriptයල් පැන ගියේ කවදාද ? මම තවමත් HTML ලේඛන <script type="text/javascript" ...ටැග් වලින් පුරවනවා.
ඔලි

7
එය බ්‍රව්සර් සඳහා කිසිදු වෙනසක් නොකරයි. එය RFC ප්‍රමිතීන් සඳහා යල්පැන ඇති ය: rfc-editor.org/rfc/rfc4329.txt
fcm

16
@Oli ඔබට ආරක්ෂිතව අතහැර හැකි type="text/javascript"හා සාධාරණ කරන්න <script>...</script>අඩුම තරමින් HTML5 අනුව.
TCB13

149

දී JSP , ඔබ පිටුව උපදෙස් දී මෙය භාවිතා කළ හැක:

<%@ page language="java" contentType="application/json; charset=UTF-8"
    pageEncoding="UTF-8"%>

JSON සඳහා නිවැරදි MIME මාධ්‍ය වර්ගය වේ application/json. සේවාදායකයාට ප්‍රතිචාරයක් යැවීම සඳහා ජේඑස්පී එය භාවිතා කරයි.


115

application/json” යනු නිවැරදි 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())
  }
}

112

සඳහා IANA ලියාපදිංචියapplication/json පවසයි

මෙම මාධ්‍ය වර්ගය භාවිතා කරන යෙදුම්: මෙම සියලු ක්‍රමලේඛන භාෂාවලින් ලියා ඇති යෙදුම් අතර දත්ත හුවමාරු කර ගැනීම සඳහා JSON භාවිතා කර ඇත: ActionScript, C, C #, Clojure, ColdFusion, Common Lisp, E, Erlang, Go, Java, JavaScript, Lua, Objective CAML, Perl, PHP, Python, Rebol, Ruby, Scala, and Scheme.

IANA.org මෙම වෙනත් මාධ්‍ය වර්ග කිසිවක් ලැයිස්තුගත නොකරන බව ඔබට පෙනෙනු ඇත , ඇත්ත වශයෙන්ම application/javascriptදැන් යල්පැන ඇත. ඒ නිසා application/jsonඇත්තටම පමනි නිවැරදි පිළිතුර.

බ්‍රව්සර් සහාය තවත් දෙයක්.

වඩාත්ම පුළුල් ලෙස සහාය දක්වන සම්මත නොවන මාධ්‍ය වර්ග text/jsonහෝ text/javascript. නමුත් සමහර විශාල නම් පවා භාවිතා කරයිtext/plain .

ඊටත් වඩා අමුතු දෙයක් නම් ෆ්ලිකර් විසින් එවන ලද අන්තර්ගත වර්ගයේ ශීර්ෂකයයි text/xml. ගූගල් භාවිතා කරයිtext/javascript සමහර අජැක්ස් ඇපිස් සඳහා .

උදාහරණ:

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

ප්‍රතිදානය: Content-Type: text/javascript

curl -I "https://www.flickr.com/services/rest/?method=flickr.test.echo&format=json&api_key=f82254c1491d894f1204d8408f645a93"

ප්‍රතිදානය: Content-Type: text/xml


90

නිවැරදි MIME වර්ගය වේ application/json

එහෙත්

බ්‍රව්සර් වර්ගය හෝ රාමු පරිශීලකයාට අවශ්‍ය බොහෝ අවස්ථා මම අත්විඳිමි:

text/html

application/javascript

10
එවැනි තත්වයකට උදාහරණයක්?
මාර්ක් අමරි


66

මෙම අන්තර්ගත-ටයිප් header 'ලෙස යොමු කරන්න අයදුම්පත / json ' විට වෙබ් අඩවියේ. ඉල්ලීම සඳහා සේවාදායකයාට සවන්දීමට " පිළිගන්න = යෙදුම / ජේසන් " ඇතුළත් විය යුතුය . වසන්ත එම්වීසී හි ඔබට මේ ආකාරයට කළ හැකිය:

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

ප්‍රතිචාරයට ශීර්ෂ එකතු කරන්න:

HttpHeaders headers = new HttpHeaders();
headers.add("Content-Type", "application/json");


59

මෙම application/jsonමාලාවක් හෝ වස්තුව දත්ත ගබඩා කිරීම සඳහා PHP හි ස්වභාවිකයි.

මම මෙම කේතය භාවිතා කරන්නේ ප්‍රසිද්ධියේ නැරඹිය හැකි පරිදි සකසා ඇති ගූගල් වලාකුළු ආචයනය (GCS) හි JSON හි දත්ත තැබීමට ය :

$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
);

දත්ත ආපසු ලබා ගැනීම සඳහා කෙළින්ම ඉදිරියට ය:

$data = json_decode(file_get_contents("gs://BUCKETNAME/FILENAME.json"));

50

JSON පෑඩින් සමඟ තිබේ නම් එය එසේ වනු ඇත application/jsonp. JSON පෑඩින් නොමැතිව නම් එය එසේ වනු ඇත application/json.

මේ දෙකම සමඟ ගනුදෙනු කිරීම සඳහා භාවිතා කිරීම හොඳ පුරුද්දකි: 'යෙදුම / ජාවාස්ක්‍රිප්ට්' එය පෑඩින් සමඟද නැතහොත් පෑඩින් නොමැතිවද යන්න කරදර නොකර.


8
ඔබගේ පිළිතුරේ පළමු කොටස වැරදිය. "application / jsonp" වලංගු MIME වර්ගයක් නොවේ. JSONP හි ප්‍රතිචාර ශරීරය ජාවාස්ක්‍රිප්ට් පමණක් බැවින් ජාවාස්ක්‍රිප්ට් සඳහා MIME වර්ග වලින් එකක් භාවිතා කළ යුතුය.
රොබ් ඩබ්ලිව්


43

ඔබ REST සන්දර්භය තුළ JSON භාවිතා කරන විට පිළිගත් ප්‍රතිචාර දීර් ing කිරීම ...

ඒ නිසා එය ප්රබල තර්කයක් භාවිතා කිරීම පිළිබඳ application/x-resource+jsonසහ application/x-collection+jsonඔබ බෝපාල් සම්පත් සහ එකතු නියෝජනය කරන විට.

ඔබ jsonapi පිරිවිතර අනුගමනය කිරීමට තීරණය කරන්නේ නම් , එය ලේඛනගත කර ඇති පරිදි ඔබ භාවිතා කළ යුතුයapplication/vnd.api+json .

ක විශ්ව ප්රමිතියක් නොමැති නොවේ Altough, එය වඩා පැහැදිලි යුක්ති සහගත යැවීමට වීම සම්පත් සඳහා ඍජු ඉල්ලීම් වැඩිදුරටත් බව පැහැදිලි ය අන්තර්ගත-වර්ගය පමණක් වඩාapplication/json .

මෙම තර්කයෙන් පසුව, වෙනත් සන්දර්භයන්ට වඩාත් නිශ්චිත අන්තර්ගත වර්ගයක් සාධාරණීකරණය කළ හැකිය .


3
application/vnd.api+jsonjson භාවිතා කරන apis සඳහා විශේෂයෙන් පෙනේ : api , තමන්ගේම අපේක්ෂාවන් සහ ආකෘතිය සහිත ඉතා පටු පිරිවිතරයක් වන අතර, එය json ආපසු ලබා දෙන ඕනෑම API සඳහා විය යුතු යැයි මට වැටහෙන්නේ නැත . මම වැරදියි නම් කරුණාකර මාව නිවැරදි කරන්න
හිලිකස්


39

ඔබ JSON හි REST API වෙතින් දත්ත ලබා ගන්නේ නම් ඔබට අන්තර්ගත වර්ගය භාවිතා කළ යුතුය

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

28

Content-Type: application/json- json
Content-Type: application/javascript- json-P
Content-Type: application/x-javascript- javascript
Content-Type: text/javascript- javascript නමුත් යල් පැන ගිය, පැරණි IE අනුවාදයන් html ගුණාංගයක් ලෙස භාවිතා කරයි.
Content-Type: text/x-javascript- ජාවාස්ක්‍රිප්ට් මාධ්‍ය වර්ග නමුත් යල්පැන ඇති
Content-Type: text/x-json- යෙදුමට පෙර json / json නිල වශයෙන් ලියාපදිංචි වීමට.


JSON පෙළ සඳහා: application / json අන්තර්ගත වර්ගය: application / json
Vikash Chauhan

28

JSON (JavaScript Object Notation) සහ JSONP ("JSON with padding") ආකෘති ඉතා සමාන බව පෙනේ, එබැවින් ඔවුන් භාවිතා කළ යුත්තේ කුමන MIME යන්න බොහෝ ව්‍යාකූල විය හැකිය. ආකෘති සමාන වුවද, ඒවා අතර යම් සියුම් වෙනස්කම් තිබේ.

එබැවින් ඕනෑම සැකයක් ඇති වූ විට, මට ඉතා සරල ප්‍රවේශයක් ඇත (එය බොහෝ අවස්ථාවන්හිදී හොඳින් ක්‍රියාත්මක වේ), එනම්, ගොස් අදාළ RFC ලේඛනය පරීක්ෂා කරන්න.

JSON RFC 4627 (ජාවාස්ක්‍රිප්ට් වස්තු අංකනය සඳහා යෙදුම / json මාධ්‍ය වර්ගය (JSON)) යනු JSON ආකෘතියේ පිරිවිතරයකි. එය 6 වන වගන්තියේ, JSON පෙළ සඳහා MIME මාධ්‍ය වර්ගය බව පවසයි

application/json.

JSONP JSONP ("JSON with padding") බ්‍රව්සරයක JSON ට වඩා වෙනස් ආකාරයකින් හසුරුවනු ලැබේ. JSONP සාමාන්‍ය ජාවාස්ක්‍රිප්ට් පිටපතක් ලෙස සලකනු ලබන අතර එබැවින් එය application/javascript,ජාවාස්ක්‍රිප්ට් සඳහා වර්තමාන නිල MIME වර්ගය භාවිතා කළ යුතුය . කෙසේ වෙතත්, බොහෝ අවස්ථාවන්හීදී, text/javascriptMIME වර්ගයද හොඳින් ක්‍රියාත්මක වේ.

බව සටහන text/javascriptඅභාවයට ලෙස සලකුණු කර ඇත RFC 4329 (ස්ක්රිප්ටින් මාධ්ය වර්ග) ලේඛනය එය භාවිතා කිරීම රෙකමදාරු කරනු ලැබේ application/javascriptවෙනුවට වර්ගය. කෙසේ වෙතත්, උරුම හේතු නිසා, text/javascriptතවමත් බහුලව භාවිතා වන අතර එයට හරස් බ්‍රව්සර් සහාය ඇත (එය සැමවිටම application/javascriptMIME වර්ගයේ, විශේෂයෙන් පැරණි බ්‍රව්සර් සමඟ නොවේ).

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.