সঠিক JSON সামগ্রীর প্রকারটি কী?


10248

আমি প্রায় তালগোল পাকানো থাকেন তাহলে তাদেরকে JSON কিছু সময়ের জন্য, শুধু পাঠ্য হিসেবে এটি ঠেলাঠেলি এবং এটি নেই আহত কেহ (যে আমি জানি), কিন্তু আমি কিছু সঠিকভাবে কাজ শুরু করতে চাই।

আমি দেখেছি তাই অনেক purported তাদেরকে JSON বিষয়বস্তুর প্রকার জন্য "মান":

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

তবে কোনটি সঠিক, না সেরা? আমি সংগ্রহ করি যে তাদের মধ্যে সুরক্ষা এবং ব্রাউজার সমর্থন সংক্রান্ত সমস্যাগুলি রয়েছে।

আমি জানি একটি অনুরূপ প্রশ্ন আছে, JSON যদি একটি REST এপিআই দ্বারা ফেরত দেওয়া হয় তবে কি মাইম টাইম? তবে আমি আরও কিছু লক্ষ্যবস্তু উত্তর চাই।

উত্তর:


10303

জেএসওএন পাঠ্যের জন্য:

application/json

JSON পাঠ্যের জন্য MIME মিডিয়া প্রকার application/json। ডিফল্ট এনকোডিংটি ইউটিএফ -8। (উত্স: আরএফসি 4627 )।

জন্য jsonp (runnable জাভাস্ক্রিপ্ট) কলব্যাক সঙ্গে

application/javascript

এখানে কিছু ব্লগ পোস্ট প্রাসঙ্গিক মন্তব্যগুলিতে উল্লেখ করা হয়েছে।



আমি কি এক সাথে ফাইল পাঠাতে পারি জসন পাঠ্য?
ওপভি

7
ইন্টারনেট এক্সপ্লোরার এর মাঝে মাঝে অ্যাপ্লিকেশন /
জেসন

6
কল্পনা করুন আমার কাছে কারও দ্বারা লিখিত একটি দস্তাবেজ রয়েছে যাতে এতে সরল পাঠ্য রয়েছে। এখন সেই সরল পাঠটি বৈধ JSON হিসাবেও ঘটবে। আমি কি তখন পাঠ / প্লেইনটিকে এর মাইম-টাইপ হিসাবে ব্যবহার করা ভুল করব? জেএসএন হ'ল পাঠ্যের একটি সাব-টাইপ। সুতরাং আমি মনে করি উভয়কেই অনুমতি দেওয়া উচিত। অনুশীলনে আরও ভাল কাজ করে এমন প্রশ্ন। কোডেটোশেয়ারের মন্তব্য অনুসারে আইই অ্যাপ্লিকেশন / জেসন নিয়ে সমস্যা রয়েছে। তবে কোনও ব্রাউজারের পাঠ্য / প্লেইন নিয়ে সমস্যা হওয়া উচিত নয়। যদি পাঠ্য / প্লেইনটি অনিরাপদ থাকে তবে আমি কীভাবে আমার ওয়েব সাইট থেকে পাঠ্য-ফাইলগুলি পরিবেশন করতে পারি?
পানু লজিক

5
@ ইউজেনমিহাইলস্কু এই পৃষ্ঠার শিরোনাম "
মাইমে

1616

আইএএনএ জেএসএনের জন্য অফিসিয়াল এমটাইম টাইপ নিবন্ধভুক্ত করেছে application/json

কেন তা না করার বিষয়ে জানতে চাইলে text/jsonক্রোকফোর্ড মনে করেছেন জেএসএন আসলে জাভাস্ক্রিপ্ট বা পাঠ্য নয় এবং আইএএনএ এর application/*চেয়ে বেশি হস্তান্তরিত হওয়ার সম্ভাবনাও বেশি ছিল text/*

আরও সংস্থানসমূহ:


166
text/*প্রারম্ভিক দিনগুলিতে প্রচুর জিনিস put োকানো হয়েছে যা সম্ভবত application/*এই দিনটিতে বিভাগে রাখা হবে ।
ট্রিগ

29
@ রোহমার - আপনি "পাঠ্য সম্পাদককে কিছু" খুলতে পারেন, তবে জাইপিজি বা উইন্ডোজ। এক্স বা একটি জাইপের মতো বাইনারি বিন্যাসে প্রিন্টযোগ্য অক্ষর থাকবে যা প্রকৃতপক্ষে অনেকগুলি পাঠ্য সম্পাদককে ভেঙে দিতে বা অনাকাঙ্ক্ষিত আচরণের কারণ হতে পারে। cat file.jpgউদাহরণস্বরূপ চলমান চেষ্টা করুন । যেখানে কোনও এক্সএমএল বা জেসন ফাইল 100% মুদ্রণযোগ্য। সুতরাং আমি মনে করি যে স্টিজন ডি উইট এর বক্তব্যটি একটি বৈধ, যদিও হ্যাঁ, এখন পরিবর্তিত হতে খুব দেরী হয়েছে।
এক্সপি 84

4
@ এক্সপি 84 আপনি এইচএক্স আকারে একটি পাঠ্য সম্পাদক দিয়ে যে কোনও বাইনারি খুলতে পারেন। এবং সমস্ত বিভিন্ন অক্ষর (এর মধ্যে 16) 100% মুদ্রণযোগ্য। সুতরাং, এই যুক্তি দ্বারা ... সব বাইনারি পাঠ্য হয়? জেসন পাঠ্য নয়। জসন হ'ল (সতর্কতা: অবৈধ আলগা সংজ্ঞা সামনে) কোনও জিনিসের একটি পাঠ্য উপস্থাপনা (বা বস্তুর অ্যারে)
xDaiizu

5
"এইচএক্স আকারে একটি পাঠ্য সম্পাদক" এই বাক্যটির কোনও অর্থ নেই। একটি হেক্স সম্পাদক প্রতিটি বাইটকে এর হেক্সাডেসিমাল মান হিসাবে দেখায়, উদাহরণস্বরূপ, বাইট 1111000 "78" হিসাবে। যদিও এমন কিছু পাঠ্য সম্পাদক থাকতে পারে যা হেক্স সম্পাদনা মোডে ঘটে থাকে, তবে এটি বেশিরভাগ প্রযুক্তিগত কাজগুলি সর্বাধিক প্রযুক্তিগত ব্যবহারকারীরা ব্যতীত অন্য কোন কিছুর জন্যই কার্যকর বা কার্যকর নয়। পাঠ্য, তুলনা করে, মানে এএসসিআইআই বা ইউনিকোড এবং পাঠ্যে, বাইট 1111000 মানে নিম্ন- xঅক্ষরের অক্ষর। Not 78 নয় J এটিতে কেবল পাঠযোগ্য পাঠ্য অক্ষর রয়েছে যার মধ্যে কাঠামোগত অর্থ রয়েছে।
এক্সপি 84

11
আমি স্টিজন ডি উইটের সাথে একমত হতে চাই। জেএসএন বলতে কোনও পাঠ্য-সম্পাদক দিয়ে দেখা এবং সম্পাদিত হতে বোঝায়।
পানু লজিক

890

জেএসএনের জন্য:

Content-Type: application/json

জন্য তাদেরকে JSON-পি :

Content-Type: application/javascript

62
Jsonp যদিও তাদেরকে JSON সত্যিই নয়, এটা একটি জাভাস্ক্রিপ্ট অবজেক্ট আক্ষরিক পাশ করার জন্য একটা টেকনিক
বেঞ্জামিন Gruenbaum

632

অবশ্যই, জেএসএনের জন্য সঠিক এমআইএমআই মিডিয়া টাইপ application/json , তবে আপনার আবেদনে কোন ধরণের ডেটা আশা করা যায় তা উপলব্ধি করা প্রয়োজন।

উদাহরণস্বরূপ, আমি এক্সট্রা জিডাব্লুটিটি ব্যবহার করি এবং সার্ভারের প্রতিক্রিয়া অবশ্যই পাঠ্য / এইচটিএমএল হিসাবে যেতে হবে তবে এতে জেএসওএন ডেটা রয়েছে।

ক্লায়েন্ট পক্ষ, এক্সট্রা জিডাব্লুটি ফর্ম শ্রোতা

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");
    }
});

অ্যাপ্লিকেশন / জসন প্রতিক্রিয়া ধরণের ব্যবহারের ক্ষেত্রে ব্রাউজারটি আমাকে ফাইলটি সংরক্ষণ করার পরামর্শ দেয়।

স্প্রিং এমভিসি ব্যবহার করে সার্ভারের সাইড সোর্স কোড স্নিপেট

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
সার্ভারের প্রতিক্রিয়া অবশ্যই পাঠ্য / এইচটিএমএল হিসাবে যেতে হবে। এটি এক্সটجےএস বৈকল্পিকের ক্ষেত্রেও সত্য।
gbegley

463

তাদেরকে JSON:

ইউআরএলে পাস করা কোয়েরি প্যারামিটার অনুসারে প্রতিক্রিয়াটি গতিশীলভাবে ডেটা উত্পন্ন হয়।

উদাহরণ:

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

বিষয়বস্তুর প্রকার: application/json


তাদেরকে JSON-পি:

প্যাডিং সহ জেএসওএন। প্রতিক্রিয়া হ'ল জেএসওএন ডেটা, যার চারপাশে একটি ফাংশন কল।

উদাহরণ:

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

বিষয়বস্তুর প্রকার: application/javascript


46
JSON এর সংজ্ঞাটি ভুল। এটি গতিশীলভাবে উত্পন্ন করার বা কোয়েরি পরামিতিগুলির সম্মান করার দরকার নেই। আপনি একটি স্থির JSON ফাইল পরিবেশন করতে পারেন। এছাড়াও, সর্বাধিক উত্সাহিত উত্তরের আরএফসির সাথে একটি লিঙ্ক রয়েছে।
স্টাইলফেল

10
এছাড়াও জেএসএনপি একটি ভেরিতে নির্ধারিত জসন ডেটা হতে পারে।
জিমি কেন

401

আপনি যদি উবুন্টু বা ডেবিয়ান ব্যবহার করে থাকেন এবং আপনি অ্যাপাচি এর মাধ্যমে .json ফাইল পরিবেশন করেন তবে আপনি সঠিক সামগ্রীর প্রকারের সাহায্যে ফাইলগুলি পরিবেশন করতে চাইতে পারেন। আমি এটি প্রাথমিকভাবে করছি কারণ আমি ফায়ারফক্স এক্সটেনশন জেএসএনভিউ ব্যবহার করতে চাই

অ্যাপাচি মডিউল mod_mime এটি সহজেই করতে সহায়তা করবে। তবে উবুন্টু দিয়ে আপনাকে ফাইল /etc/mime.tyype সম্পাদনা করতে হবে এবং লাইনটি যুক্ত করতে হবে

application/json json

তারপরে অ্যাপাচি পুনরায় চালু করুন:

sudo service apache2 restart

44
সাধারণত একটি পুনরায় লোড যথেষ্ট (পুনরায় আরম্ভের চেয়ে দ্রুত)। এছাড়াও, নোট করুন যে আপনি এখন "sudo পরিষেবা অ্যাপাচি 2 রিলোড" করতে পারেন can
noamtm

19
উবুন্টু 12.04 এর ডিফল্টরূপে রয়েছে
প্রিজফ ২

386

আপনি যদি ক্লায়েন্টের পক্ষ থেকে ASP.NET ওয়েব পরিষেবাদিগুলি কল করছেন তবে আপনাকে application/jsonএটির কাজ করার জন্য ব্যবহার করতে হবে। আমি বিশ্বাস করি jQuery এবং এক্সট্রা ফ্রেমওয়ার্কগুলির জন্য এটি একই ।


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সেরা মাইম টাইপ।

তবে আমার কিছু অভিজ্ঞতা ছিল যেখানে 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 পৃষ্ঠাগুলি জি-জিপ দিয়ে সংকুচিত হয়েছিল তবে জেএসএন প্রতিক্রিয়াগুলি ছিল না। আমি আরো বললাম

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

স্থিতিশীল এবং গতিশীল ধরণের বিভাগে। তবে এটি JSON এর প্রতিক্রিয়াগুলিকে মোটেই সংকুচিত করে না।

এর পরে আমি এই নতুন যুক্ত হওয়া টাইপটি সরিয়ে যুক্ত করেছি

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

উভয় স্থিতিশীল এবং গতিশীল ধরনের বিভাগে, এবং মধ্যে প্রতিক্রিয়া টাইপ পরিবর্তন

.ashx (অ্যাসিনক্রোনাস হ্যান্ডলার) থেকে

application/x-javascript

এবং এখন আমি দেখতে পেয়েছি যে আমার জেএসএন প্রতিক্রিয়াগুলি জি-জিপ দিয়ে সংকুচিত হয়েছিল। তাই আমি ব্যক্তিগতভাবে ব্যবহার করার পরামর্শ দিই

application/x-javascript

কেবলমাত্র যদি আপনি ভাগ করে নেওয়া হোস্টিং পরিবেশে আপনার JSON প্রতিক্রিয়াগুলি সংকুচিত করতে চান তবে । ভাগ করা হোস্টিংয়ের কারণে, তারা আপনাকে আইআইএস কনফিগারেশনগুলি পরিবর্তন করতে দেয় না ।


11
"সুতরাং আমি ব্যক্তিগতভাবে অ্যাপ্লিকেশন / এক্স-জাভাস্ক্রিপ্ট ব্যবহার করার পরামর্শ দিচ্ছি" যেখানে এই উত্তরটি বিভ্রান্তিকর হয়ে পড়ে। GoDaddy করে এর কম্প্রেশন অনুমতি application/json, আমি আমার শেয়ার্ড হোস্টিং তে এটি সুবিধা নিতে চেয়েছিল এবং আমি যাহাই হউক কম্প্রেশন সক্ষম করার জন্য একটি বিভিন্ন বিষয়বস্তুর প্রকার ব্যবহার করার সুপারিশ করবে না, এটা শুধু ভুল। এটি করা যেতে পারে তবে এটি এখনও ভুল হবে। ব্রাউজার সমর্থনের জন্য বিভিন্ন সামগ্রীর ধরণগুলি ব্যবহার করা একটি জিনিস, সার্ভার-সাইড সংক্ষেপণের জন্য বিভিন্ন সামগ্রীর ধরণের ব্যবহার অন্য জিনিস।

269

কেবলমাত্র এমআইএমএম টাইপ application/jsonহিসাবে ব্যবহার করার সময় আমার কাছে নিম্নলিখিতগুলি রয়েছে (নভেম্বর ২০১১ হিসাবে ক্রোমের সবচেয়ে সাম্প্রতিক সংস্করণ, ফায়ারবগ সহ ফায়ারফক্স ):

  • JSON সার্ভার থেকে লোড হওয়ার পরে ক্রোম থেকে আর কোনও সতর্কতা নেই।
  • ফায়ারব্যাগ প্রতিক্রিয়ায় একটি ট্যাব যুক্ত করবে যা আপনাকে JSON ডেটা ফর্ম্যাট করে দেখায়। যদি মাইম টাইম আলাদা হয় তবে এটি কেবল 'প্রতিক্রিয়া সামগ্রী' হিসাবে প্রদর্শিত হবে।

244

সবকিছু সামগ্রীর ধরণের জন্য কাজ করে না application/json

আপনি যদি ফাইল আপলোড করার জন্য এক্সট্রা জেএস ফর্ম ব্যবহার করছেন তবে সচেতন হন যে সার্ভারের প্রতিক্রিয়াটি ব্রাউজার দ্বারা নথিটি তৈরি করতে পার্স করেছে <iframe>

যদি সার্ভারটি JSON ব্যবহার করে রিটার্ন অবজেক্টটি প্রেরণ করে তবে Content-Typeশিরোনামটি সেট করা আবশ্যকtext/html দস্তাবেজের শিরোনামে অপরিবর্তিত পাঠ্য সন্নিবেশ করতে ব্রাউজারটিকে বলার জন্য শিরোনামটি ।

দেখুন Ext জাতীয় 3.4.0 এপিআই ডকুমেন্টেশন


40
সরঞ্জামগুলি যেগুলি মানগুলির সাথে সম্মতি দেয় না যখনই সম্ভব সম্ভব এড়ানো উচিত; application/jsonপ্রতি অনুমান ব্যবহার করুন ।
one.beat.consumer

15
@ one.beat.consumer এটি সত্য হলেও এটি প্রতি সেটে এক্সট্রিজের সাথে সুনির্দিষ্ট নয়। এটি ব্রাউজারের সীমাবদ্ধতা (বা বরং সম্ভবত একটি "সুরক্ষা ব্যবস্থা")।
হেন্ডি ইরাওয়ান

7
অবশ্যই পাঠ্য / প্লেইন ব্যবহার করা ভাল তবে এটি কোনও এইচটিএমএল শব্দার্থবিজ্ঞানকে নন-এইচটিএমএল সামগ্রীতে প্রয়োগ করে না? বা ব্রাউজারগুলি কোনও ফ্রেমের সামগ্রী খুঁজে পেতে দেয় না যদি এটির কোনও ডিওএম না থাকে?
সিঙ্ক্রো

5
আরও বিভ্রান্তির যোগ করার জন্য: আমি শুধুমাত্র ডিফল্ট ব্রাউজারে স্যামসাং গ্যালাক্সি বিম (অ্যান্ড্রয়েড 2.3) উপর একটি অনুরূপ ক্ষেত্রে ডিবাগ করছি, এবং iframeঅগ্নি বলে মনে হয় loadজন্য ইভেন্ট application/javascript, application/x-javascript, text/javascript, text/plain, কিন্তু না তার জন্য অগ্নিসংযোগ application/jsonকিংবা text/html। আজ অবধি, অ্যান্ড্রয়েড <= 2.3 হ'ল অ্যান্ড্রয়েডের বাজারের প্রায় 50% শেয়ার।
jakub.g

226

জেএসএন হ'ল একটি ডোমেন-নির্দিষ্ট ভাষা (ডিএসএল) এবং জাভাস্ক্রিপ্টের চেয়ে আলাদা একটি ডেটা ফর্ম্যাট এবং এর মতো নিজস্ব মাইম টাইপ application/json,। মাইমির ধরণের প্রতি শ্রদ্ধা অবশ্যই ক্লায়েন্ট চালিত, তাই text/plainবাইটস স্থানান্তর করার জন্য এটি করতে পারে, তবে তারপরে আপনি অযথা বিক্রেতার অ্যাপ্লিকেশন ডোমেনটির ব্যাখ্যার চাপ দিচ্ছেন - application/json। আপনি কি XML এর মাধ্যমে স্থানান্তর করবেন text/plain?

তবে সত্যি বলতে কী, আপনার মাইম টাইপের পছন্দটি ক্লায়েন্টকে পরামর্শ দেয় যে কীভাবে ডেটা ব্যাখ্যা করতে হবে - text/plainবা text/HTML(যখন এটি এইচটিএমএল নয়) টাইপ ইরেজারের মতো হয় - এটি আপনার টাইপের সমস্ত অবজেক্টকে টাইপ করা ভাষায় টাইপ করার মতো অজানা।

আমার জানা ব্রাউজারের কোনও রানটাইম কোনও জেএসওএন নথি গ্রহণ করবে না এবং কোনও হস্তক্ষেপ ছাড়াই এটি স্বয়ংক্রিয়ভাবে জাভাস্ক্রিপ্টের অ্যাক্সেসযোগ্য অবজেক্ট হিসাবে রানটাইমটিতে উপলব্ধ করবে, তবে আপনি যদি কোনও পঙ্গু ক্লায়েন্টের সাথে কাজ করছেন তবে এটি সম্পূর্ণ আলাদা বিষয় different তবে এটি পুরো গল্পটি নয়- বিশ্রামদায়ক JSON পরিষেবাদিতে প্রায়শই জাভাস্ক্রিপ্ট রানটাইম থাকে না, তবে এটি ব্যবহারযোগ্য ডেটা ইন্টারচেঞ্জ ফর্ম্যাট হিসাবে JSON ব্যবহার বন্ধ করে না। যদি ক্লায়েন্টরা সেই পঙ্গু হয়ে থাকে ... তবে আমি পরিবর্তে কোনও আজাক্স টেম্প্লেটিং পরিষেবাদির মাধ্যমে এইচটিএমএল ইঞ্জেকশনটি বিবেচনা করব ।

অ্যাপ্লিকেশান / তাদেরকে JSON!


210

আপনি যদি ক্লায়েন্ট-পাশের পরিবেশে থাকেন তবে ভাল সমর্থিত ওয়েব অ্যাপ্লিকেশনের জন্য ক্রস ব্রাউজার সমর্থন সম্পর্কে তদন্ত করা বাধ্যতামূলক।

ডান এইচটিটিপি কনটেন্ট-টাইপটি application/jsonহ'ল, অন্যরা ইতিমধ্যে এটিও হাইলাইট করেছে, তবে কিছু ক্লায়েন্ট এটিকে খুব ভালভাবে পরিচালনা করে না, এজন্য jQuery ডিফল্টর প্রস্তাব দেয় text/html



166

অন্য অনেকে application/jsonযেমন উল্লেখ করেছেন, সঠিক উত্তর।

তবে আপনার কাছে প্রস্তাবিত অন্যান্য বিকল্পগুলির অর্থ কী তা এখনও ব্যাখ্যা করা হয়নি what

  • application/x-javascript: জাভাস্ক্রিপ্টের জন্য পরীক্ষামূলক এমআইএমআই টাইপের application/javascriptমান তৈরি করার আগে ।

  • text/javascript: এখন অচল। application/javascriptজাভাস্ক্রিপ্ট ব্যবহার করার সময় আপনার ব্যবহার করা উচিত ।

  • text/x-javascript: উপরের অবস্থার জন্য পরীক্ষামূলক এমআইএমআই টাইপ।

  • text/x-json: application/jsonআনুষ্ঠানিকভাবে নিবন্ধভুক্ত হওয়ার আগে জেএসএনের জন্য পরীক্ষামূলক এমআইএমআই টাইপ ।

সব মিলিয়ে, যখনই আপনার সামগ্রীর ধরণের সম্পর্কে কোনও সন্দেহ থাকে, আপনার এই লিঙ্কটি পরীক্ষা করা উচিত


15
কখন text/javascriptঅচল হয়ে গেল? আমি এখনও <script type="text/javascript" ...ট্যাগ সহ HTML ডকুমেন্টগুলি পূরণ করছি ।
অলি

7
এটি সত্যিই ব্রাউজারগুলির জন্য কোনও পার্থক্য করে না। : এটা বোঝায় যা RFC মানের জন্য মাত্র অপ্রচলিত এর rfc-editor.org/rfc/rfc4329.txt
fcm

16
@ অলি আপনি নিরাপদে ফেলে দিতে পারেন type="text/javascript"এবং <script>...</script>কমপক্ষে HTML5 অনুসারে করতে পারেন।
টিসিবি

149

ইন JSP , আপনার পৃষ্ঠাটি নির্দেশ এই ব্যবহার করতে পারেন:

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

জেএসএনের জন্য সঠিক এমআইএমআই মিডিয়া টাইপ 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 এই সমস্ত প্রোগ্রামিং ভাষায় রচিত অ্যাপ্লিকেশনগুলির মধ্যে ডেটা বিনিময় করতে ব্যবহৃত হয়েছে: অ্যাকশনস্ক্রিপ্ট, সি, সি #, ক্লোজার, কোল্ডফিউশন, কমন লিস্প, ই, এরলং, গো, জাভা, জাভাস্ক্রিপ্ট, লুয়া, উদ্দেশ্য সিএএমএল, পার্ল, পিএইচপি, পাইথন, রেবোল, রুবি, স্কেলা এবং স্কিম।

আপনি লক্ষ্য করবেন যে IANA.org এর মাধ্যমে এই জাতীয় মিডিয়া ধরণের কোনও তালিকা তৈরি করে না , বাস্তবে এমনকি application/javascriptএটি এখন অপ্রচলিত। সুতরাং application/jsonসত্যিই একমাত্র সম্ভব সঠিক উত্তর।

ব্রাউজার সমর্থন অন্য জিনিস।

সবচেয়ে ব্যাপকভাবে সমর্থিত অ-মানক মিডিয়া ধরনের হয় text/jsonবা text/javascript। কিছু বড় নাম এমনকি ব্যবহার text/plain

আরও আশ্চর্যের বিষয় হ'ল ফ্লিকারের দ্বারা প্রেরিত সামগ্রী-প্রকারের শিরোনাম, যিনি JSON কে হিসাবে ফিরিয়ে দেন 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

ডান মাইম টাইমটি হ'ল application/json

কিন্তু

আমি অনেকগুলি পরিস্থিতি অনুভব করেছি যেখানে ব্রাউজারটি টাইপ করে বা ফ্রেমওয়ার্ক ব্যবহারকারীর প্রয়োজন:

text/html

application/javascript

10
এমন পরিস্থিতির উদাহরণ?
মার্ক আমেরিকা

75

আমি নীচে ব্যবহার

contentType: 'application/json',
data: JSON.stringify(SendData),

66

সামগ্রী-প্রকার হেডার 'এ সেট করা উচিত আবেদন / JSON ' যখন পোস্ট করা হচ্ছে। অনুরোধটি শোনার জন্য সার্ভারের মধ্যে " স্বীকৃতি = অ্যাপ্লিকেশন / জেসসন " অন্তর্ভুক্ত করা উচিত । স্প্রিং এমভিসিতে আপনি এটি এটি করতে পারেন:

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

প্রতিক্রিয়া শিরোনাম যোগ করুন:

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


59

application/jsonপিএইচপি কাজ মহান একটি বিন্যাস বা বস্তুর ডেটা জমা করতে।

আমি এই কোডটি গুগল ক্লাউড স্টোরেজ (জিসিএস) এ 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

জেএসএন যদি প্যাডিং সহ থাকে তবে তা হবে application/jsonp। জেএসএন যদি প্যাডিং ছাড়াই থাকে তবে তা হবে application/json

উভয়ই মোকাবেলা করার জন্য, এটি ব্যবহার করা ভাল অভ্যাস: 'অ্যাপ্লিকেশন / জাভাস্ক্রিপ্ট' প্যাডিংয়ের সাথে বা প্যাডিং ছাড়াই বিরক্ত না করে।


8
আপনার উত্তরের প্রথম অংশটি ভুল। "অ্যাপ্লিকেশন / জসনপ" কোনও বৈধ এমআইএমআই টাইপ নয়। কোনও JSONP এর প্রতিক্রিয়া সংস্থাটি কেবল জাভাস্ক্রিপ্ট, সুতরাং জাভাস্ক্রিপ্টের জন্য মাইম টাইপের একটি ব্যবহার করতে হবে।
রব ডাব্লু

50

জেএসএনের জন্য, আমি ব্যবহার করছি:

 Content-Type: application/json

এটি আইইটিএফ এর জেএসএন ডেটা ইন্টারচেঞ্জ ফর্ম্যাট 7158 প্রস্তাবনা, বিভাগ 1.2: জেএসএনের বিশেষ উল্লেখগুলিতে বর্ণিত হয়েছে ।


43

গৃহীত প্রতিক্রিয়াগুলি প্রসারিত করা, আপনি যখন কোনও বিশ্রাম প্রসঙ্গে JSON ব্যবহার করছেন ...

আপনি আরআরএসটি রিসোর্স এবং সংগ্রহগুলি উপস্থাপন করার সময় এবং ব্যবহার সম্পর্কে একটি শক্ত যুক্তি রয়েছে।application/x-resource+jsonapplication/x-collection+json

এবং যদি আপনি জসোনাপি নির্দিষ্টকরণ অনুসরণ করার সিদ্ধান্ত নেন , আপনারapplication/vnd.api+json ডকুমেন্ট হিসাবে যেমন ব্যবহার করা উচিত

যথেষ্ট পরিমাণে কোনও সর্বজনীন মান নেই, এটি স্পষ্ট যে স্থানান্তরিত হওয়া সংস্থাগুলিতে যুক্ত সংশ্লেষকে ন্যায়বিচারের চেয়ে আরও সুস্পষ্ট বিষয়বস্তু প্রকারের ন্যায্যতা দেয় application/json

এই যুক্তি অনুসরণ করে, অন্যান্য প্রসঙ্গগুলি আরও নির্দিষ্ট কন্টেন্ট-প্রকারের ন্যায্যতা প্রমাণ করতে পারে ।


3
application/vnd.api+jsonএপিএস জেসন ব্যবহার করে বিশেষত বলে মনে হচ্ছে : এপিআই , এর নিজস্ব প্রত্যাশা এবং ফর্ম্যাট সহ একটি খুব সংকীর্ণ স্পেসিফিকেশন, আমি জসনকে ফেরত এমন কোনও এপিআইয়ের জন্য এটি বুঝতে পারি না । আমি ভুল হলে দয়া করে আমাকে সংশোধন করুন
হিলিকাস


39

আপনি যদি JSON এ REST এপিআই থেকে ডেটা পান তবে আপনাকে সামগ্রী-প্রকারটি ব্যবহার করতে হবে

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- জাভাস্ক্রিপ্ট
Content-Type: text/javascript- জাভাস্ক্রিপ্ট কিন্তু অপ্রচলিত, পুরানো IE সংস্করণগুলি এইচটিএমএল বৈশিষ্ট্য হিসাবে ব্যবহৃত হত to
Content-Type: text/x-javascript- জাভাস্ক্রিপ্ট মিডিয়া প্রকারগুলি কিন্তু অপ্রচলিত
Content-Type: text/x-json- অ্যাপ্লিকেশন / জেসন আনুষ্ঠানিকভাবে নিবন্ধিত হওয়ার আগে জেসসন।


জেএসওএন পাঠ্যের জন্য: অ্যাপ্লিকেশন / জসন সামগ্রী-প্রকার: অ্যাপ্লিকেশন / জসন
বিকাশ চৌহান

28

তাদেরকে JSON (জাভাস্ক্রিপ্ট অবজেক্ট স্বরলিপি) এবং jsonp ( "প্যাডিং সহ তাদেরকে JSON") ফরম্যাটের অনুরূপ হবে বলে মনে হয় এবং সেইজন্য এটা খুব বিভ্রান্তিকর হতে হতে পারে MIME প্রকার তারা ব্যবহার করা উচিত। ফর্ম্যাটগুলি সমান হলেও তাদের মধ্যে কিছু সূক্ষ্ম পার্থক্য রয়েছে।

সুতরাং যখনই কোনও সন্দেহের মধ্যে আমার কাছে একটি খুব সহজ পদ্ধতির (যা বেশিরভাগ ক্ষেত্রে পুরোপুরি সূক্ষ্মভাবে কাজ করে) থাকে, যথা, গিয়ে গিয়ে সংশ্লিষ্ট আরএফসি ডকুমেন্টটি পরীক্ষা করে দেখুন।

জেএসএন আরএফসি 4627 (জাভাস্ক্রিপ্ট অবজেক্ট নোটেশনের জন্য অ্যাপ্লিকেশন / জসন মিডিয়া টাইপ (জেএসএন)) জেএসওএন ফর্ম্যাটের একটি বৈশিষ্ট্য। এটি বিভাগে 6 এ বলেছে যে JSON পাঠ্যের জন্য মাইমিয়া মিডিয়া টাইপ

application/json.

JSONP JSONP ("প্যাডিং সহ JSON") ব্রাউজারে JSON এর চেয়ে আলাদাভাবে পরিচালনা করা হয়। জেএসএনপি একটি নিয়মিত জাভাস্ক্রিপ্ট স্ক্রিপ্ট হিসাবে বিবেচিত হয় এবং তাই এটি application/javascript,জাভাস্ক্রিপ্টের জন্য বর্তমান অফিসিয়াল এমআইএমআই টাইপ ব্যবহার করা উচিত । অনেক ক্ষেত্রে অবশ্য text/javascriptমাইম টাইপটিও ঠিকঠাক কাজ করবে।

নোট যে আরএফসি 4329 (স্ক্রিপ্টিং মিডিয়া টাইপ) নথি text/javascriptদ্বারা অপ্রচলিত হিসাবে চিহ্নিত হয়েছে এবং পরিবর্তে এটি টাইপ ব্যবহার করার পরামর্শ দেওয়া হয় । তবে, উত্তরাধিকারগত কারণে, এখনও ব্যাপকভাবে ব্যবহৃত হয় এবং এর ক্রস ব্রাউজার সমর্থন রয়েছে (যা সর্বদা এমআইএমআই টাইপের ক্ষেত্রে হয় না , বিশেষত পুরানো ব্রাউজারগুলির ক্ষেত্রে)।application/javascripttext/javascriptapplication/javascript

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.