জসন পার্সি এক্সেপশন: অবৈধ অবৈধ অক্ষর ((সিটিআরএল-চার, কোড 10)


98

আমি org.apache.httpcomponentsরেস্ট এপিআই ব্যবহার করার চেষ্টা করছি , যা জেএসএন ফর্ম্যাট ডেটা এপিআইতে পোস্ট করবে।

আমি এই ব্যতিক্রম পাই:

দ্বারা সৃষ্ট: com.fasterxml.jackson.core.JsonParseException: অবৈধ অব্যর্থ অক্ষর ((CTRL-CHAR, কোড 10)): স্ট্রিংয়ে অন্তর্ভুক্ত করার জন্য ব্যাকস্ল্যাশ ব্যবহার করে পালাতে হবে।

কারণটি হ'ল ctrl-charজেএসএন স্ট্রিংয়ের অন্তর্ভুক্ত।

এটি বা অন্য কোনও সমাধান প্রতিস্থাপনের কোনও উপায় আছে কি?


4
আপনি নিজেই জেএসএন তৈরি করছেন? মূলত, মনে হচ্ছে আপনার ভাঙা ডেটা পেয়েছে ... সুতরাং আপনি যদি পারেন তবে এটি ঠিক করুন, বা যে কেউ এটি তৈরি করছে তার কাছে অভিযোগ করুন।
জন স্কিটি

4
এই স্ট্যাকওভারফ্লো উত্তরে আলোচিত হিসাবে , আপনার জেএসওএন jsonlint.com এর মাধ্যমে সঠিকভাবে বৈধতা দেয় ?
এরিক ম্যাককর্মিক

আপনি .json ফাইল খোলার সাথে সাথে ইন্টেলিজ ধারণা এটিকে বৈধতা দেয়। চেষ্টা করে দেখুন!
গৌরব

উত্তর:


88

আপনার যদি কোনও JSON স্ট্রিং আক্ষরিক মধ্যে একটি নতুন লাইন (বা অন্যান্য নিয়ন্ত্রণ অক্ষর) থাকে তবে এটি ঘটতে পারে।

{"foo": "bar
baz"}

আপনি যদি ডেটা উত্পাদনকারী এক হন, "\\n"আপনার স্ট্রিং লিটারেলগুলি তৈরি করার সময় পালানো লোকের সাথে প্রকৃত নিউলাইনগুলি প্রতিস্থাপন করুন ।

{"foo": "bar\nbaz"}

58

ব্যবহার

mapper.configure(
    JsonReadFeature.ALLOW_UNESCAPED_CONTROL_CHARS.mappedFeature(), 
    true
);

জাভাডোক দেখুন :

/**
 * Feature that determines whether parser will allow
 * JSON Strings to contain unescaped control characters
 * (ASCII characters with value less than 32, including
 * tab and line feed characters) or not.
 * If feature is set false, an exception is thrown if such a
 * character is encountered.
 *<p>
 * Since JSON specification requires quoting for all control characters,
 * this is a non-standard feature, and as such disabled by default.
 */

পুরানো বিকল্পটি JsonParser.Feature.ALLOW_UNQUOTED_CONTROL_CHARS২.১০ সাল থেকে অবচিত করা হয়েছে।

দয়া করে গিথুব থ্রেডও দেখুন ।


এক্সএমএলে এটি কীভাবে প্রয়োগ করবেন? আমি <mvc:annotation-driven> <mvc:message-converters> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="objectMapper"> <bean class="com.fasterxml.jackson.databind.ObjectMapper"> <property name="serializationInclusion" value="NON_NULL"/> </bean> </property> <property name="supportedMediaTypes" value="application/json"/> </bean> </mvc:message-converters> </mvc:annotation-driven> । আমি জ্যাকসন ২.7 ব্যবহার করছি। এবং স্প্রিং 4.3.2
সুদীপশ্যাখ্যায়

: কেন আপনি এই চেষ্টা করবেন না stackoverflow.com/questions/5349362/... MappingJackso n2HttpMessageConvert Er: অথবা যে শিম অগ্রাহ্য
Hoang

@ হোয়াং জাভাতে এই কোথায় ডিলার করবেন আমি যখন এই অবৈধ তথ্য ক্যাপচার করার চেষ্টা করছি, আমি এখানে প্রশ্নটি জিজ্ঞাসা করেছি যা এখানে রয়েছে স্ট্যাকওভারফ্লো / প্রশ্নগুলি / 49676720/… , আপনি দয়া করে আমাকে সাহায্য করতে পারেন?
বিপুল সিং

ধন্যবাদ সত্যিই দরকারী, আমি যে আমদানি করলাম তা হ'ল: com.fasterxml.jackson.core.JsonParser.Feature;
জেসেস সানচেজ

1

সেলসফোর্স প্ল্যাটফর্মে এই ত্রুটিটি ঘটে থাকে /, সমাধানগুলি এগুলি থেকে রক্ষা পাওয়া //


4
আমার জন্য - সেলসফোর্স প্ল্যাটফর্মে - এটি "\" থেকে "\\" যা আসলে প্রয়োজন ছিল। কমপক্ষে আমার ক্ষেত্রে এটি আমার জেএসএনে নতুন লাইন চরিত্রগুলির কারণে ঘটেছে। \nপরিবর্তিত হতে হয়েছিল \\n। এটি জেএসএনকে পালানোর জন্য নিয়ন্ত্রণের অক্ষরগুলির প্রয়োজনের কারণে এটি। এখানে এই দুর্দান্ত মন্তব্য দেখুন ।
6-15 'এ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.