{"id":16657,"date":"2022-10-21T19:57:26","date_gmt":"2022-10-21T14:27:26","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-declare-nullable-or-string-for-string-array-property-that-may-or-may-not-exist-inside-a-class\/"},"modified":"2022-10-21T19:57:26","modified_gmt":"2022-10-21T14:27:26","slug":"solved-declare-nullable-or-string-for-string-array-property-that-may-or-may-not-exist-inside-a-class","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-declare-nullable-or-string-for-string-array-property-that-may-or-may-not-exist-inside-a-class\/","title":{"rendered":"[Solved] Declare &#8220;Nullable[]&#8221; or &#8220;string[]?&#8221; for string array property that may or may not exist inside a class?"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-65733114\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"65733114\" data-parentid=\"65732101\" data-score=\"0\" data-position-on-page=\"1\" data-highest-scored=\"1\" data-question-has-accepted-highest-score=\"1\" itemprop=\"acceptedAnswer\" itemscope itemtype=\"https:\/\/schema.org\/Answer\">\n<div class=\"post-layout\">\n<div class=\"votecell post-layout--left\"><\/div>\n<div class=\"answercell post-layout--right\">\n<div class=\"s-prose js-post-body\" itemprop=\"text\">\n<p>In short: you don&#8217;t need <code>Nullable&lt;T&gt;<\/code> or <code>?<\/code> in this case at all.<\/p>\n<p><code>string[]<\/code> is reference type:<\/p>\n<pre class=\"lang-cs prettyprint-override\"><code>Console.WriteLine(typeof(string[]).IsValueType);\n<\/code><\/pre>\n<p>the printed output will be <code>false<\/code>.<\/p>\n<p>So, it can be <code>null<\/code> without any decoration.<\/p>\n<hr>\n<p>Back to your sample. You need to specify setters as well to be able deserialize the given json fragement:<\/p>\n<pre class=\"lang-cs prettyprint-override\"><code>public class Settings\n{\n    public int Id { get; set; }\n    public string Size { get; set; }\n    public int Order { get; set; }\n    public string[] Chips { get; set; }\n}\n<\/code><\/pre>\n<p>Because the top-level entity is not an object that&#8217;s why you need to use <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/www.newtonsoft.com\/json\/help\/html\/ParseJsonArray.htm\">JArray<\/a> to parse it first and then convert it to <code>Settings<\/code> via the <code>ToObject<\/code> (<a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/www.newtonsoft.com\/json\/help\/html\/M_Newtonsoft_Json_Linq_JToken_ToObject__1_1.htm\">1<\/a>):<\/p>\n<pre class=\"lang-cs prettyprint-override\"><code>var json = \"[\\r\\n  {\\r\\n    \\\"Id\\\": 1,\\r\\n    \\\"Size\\\": \\\"big\\\",\\r\\n    \\\"Order\\\": 6\\r\\n  },\\r\\n  {\\r\\n    \\\"Id\\\": 2,\\r\\n    \\\"Size\\\": \\\"small\\\",\\r\\n    \\\"Order\\\": 4\\r\\n  },\\r\\n  {\\r\\n    \\\"Id\\\": 3,\\r\\n    \\\"Size\\\": \\\"medium\\\",\\r\\n    \\\"Order\\\": 2,\\r\\n    \\\"chips\\\": []\\r\\n  }\\r\\n]\";\nvar semiParsedData = JArray.Parse(json);\nvar settings = semiParsedData.ToObject&lt;Settings[]&gt;();\n<\/code><\/pre>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\"><\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved Declare &#8220;Nullable<string>[]&#8221; or &#8220;string[]?&#8221; for string array property that may or may not exist inside a class? <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] In short: you don&#8217;t need Nullable&lt;T&gt; or ? in this case at all. string[] is reference type: Console.WriteLine(typeof(string[]).IsValueType); the printed output will be false. So, it can be null without any decoration. Back to your sample. You need to specify setters as well to be able deserialize the given json fragement: public class Settings &#8230; <a title=\"[Solved] Declare &#8220;Nullable[]&#8221; or &#8220;string[]?&#8221; for string array property that may or may not exist inside a class?\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-declare-nullable-or-string-for-string-array-property-that-may-or-may-not-exist-inside-a-class\/\" aria-label=\"More on [Solved] Declare &#8220;Nullable[]&#8221; or &#8220;string[]?&#8221; for string array property that may or may not exist inside a class?\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[320],"tags":[361,324,519,356,4213],"class_list":["post-16657","post","type-post","status-publish","format-standard","hentry","category-solved","tag-arrays","tag-c","tag-class","tag-json","tag-nullable"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Solved] Declare &quot;Nullable[]&quot; or &quot;string[]?&quot; for string array property that may or may not exist inside a class? - JassWeb<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jassweb.com\/solved\/solved-declare-nullable-or-string-for-string-array-property-that-may-or-may-not-exist-inside-a-class\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] Declare &quot;Nullable[]&quot; or &quot;string[]?&quot; for string array property that may or may not exist inside a class? - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] In short: you don&#8217;t need Nullable&lt;T&gt; or ? in this case at all. string[] is reference type: Console.WriteLine(typeof(string[]).IsValueType); the printed output will be false. So, it can be null without any decoration. Back to your sample. You need to specify setters as well to be able deserialize the given json fragement: public class Settings ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-declare-nullable-or-string-for-string-array-property-that-may-or-may-not-exist-inside-a-class\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2022-10-21T14:27:26+00:00\" \/>\n<meta name=\"author\" content=\"Kirat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kirat\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-declare-nullable-or-string-for-string-array-property-that-may-or-may-not-exist-inside-a-class\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-declare-nullable-or-string-for-string-array-property-that-may-or-may-not-exist-inside-a-class\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] Declare &#8220;Nullable[]&#8221; or &#8220;string[]?&#8221; for string array property that may or may not exist inside a class?\",\"datePublished\":\"2022-10-21T14:27:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-declare-nullable-or-string-for-string-array-property-that-may-or-may-not-exist-inside-a-class\/\"},\"wordCount\":111,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"keywords\":[\"arrays\",\"c++\",\"class\",\"json\",\"nullable\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-declare-nullable-or-string-for-string-array-property-that-may-or-may-not-exist-inside-a-class\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-declare-nullable-or-string-for-string-array-property-that-may-or-may-not-exist-inside-a-class\/\",\"name\":\"[Solved] Declare \\\"Nullable[]\\\" or \\\"string[]?\\\" for string array property that may or may not exist inside a class? - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"datePublished\":\"2022-10-21T14:27:26+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-declare-nullable-or-string-for-string-array-property-that-may-or-may-not-exist-inside-a-class\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-declare-nullable-or-string-for-string-array-property-that-may-or-may-not-exist-inside-a-class\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-declare-nullable-or-string-for-string-array-property-that-may-or-may-not-exist-inside-a-class\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] Declare &#8220;Nullable[]&#8221; or &#8220;string[]?&#8221; for string array property that may or may not exist inside a class?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/jassweb.com\/solved\/#website\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"name\":\"JassWeb\",\"description\":\"Build High-quality Websites\",\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/jassweb.com\/solved\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\",\"name\":\"Jass Web\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"contentUrl\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"width\":693,\"height\":132,\"caption\":\"Jass Web\"},\"image\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\",\"name\":\"Kirat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586\",\"contentUrl\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\/\/jassweb.com\"],\"url\":\"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] Declare \"Nullable[]\" or \"string[]?\" for string array property that may or may not exist inside a class? - JassWeb","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/jassweb.com\/solved\/solved-declare-nullable-or-string-for-string-array-property-that-may-or-may-not-exist-inside-a-class\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] Declare \"Nullable[]\" or \"string[]?\" for string array property that may or may not exist inside a class? - JassWeb","og_description":"[ad_1] In short: you don&#8217;t need Nullable&lt;T&gt; or ? in this case at all. string[] is reference type: Console.WriteLine(typeof(string[]).IsValueType); the printed output will be false. So, it can be null without any decoration. Back to your sample. You need to specify setters as well to be able deserialize the given json fragement: public class Settings ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-declare-nullable-or-string-for-string-array-property-that-may-or-may-not-exist-inside-a-class\/","og_site_name":"JassWeb","article_published_time":"2022-10-21T14:27:26+00:00","author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-declare-nullable-or-string-for-string-array-property-that-may-or-may-not-exist-inside-a-class\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-declare-nullable-or-string-for-string-array-property-that-may-or-may-not-exist-inside-a-class\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] Declare &#8220;Nullable[]&#8221; or &#8220;string[]?&#8221; for string array property that may or may not exist inside a class?","datePublished":"2022-10-21T14:27:26+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-declare-nullable-or-string-for-string-array-property-that-may-or-may-not-exist-inside-a-class\/"},"wordCount":111,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["arrays","c++","class","json","nullable"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-declare-nullable-or-string-for-string-array-property-that-may-or-may-not-exist-inside-a-class\/","url":"https:\/\/jassweb.com\/solved\/solved-declare-nullable-or-string-for-string-array-property-that-may-or-may-not-exist-inside-a-class\/","name":"[Solved] Declare \"Nullable[]\" or \"string[]?\" for string array property that may or may not exist inside a class? - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2022-10-21T14:27:26+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-declare-nullable-or-string-for-string-array-property-that-may-or-may-not-exist-inside-a-class\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-declare-nullable-or-string-for-string-array-property-that-may-or-may-not-exist-inside-a-class\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-declare-nullable-or-string-for-string-array-property-that-may-or-may-not-exist-inside-a-class\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] Declare &#8220;Nullable[]&#8221; or &#8220;string[]?&#8221; for string array property that may or may not exist inside a class?"}]},{"@type":"WebSite","@id":"https:\/\/jassweb.com\/solved\/#website","url":"https:\/\/jassweb.com\/solved\/","name":"JassWeb","description":"Build High-quality Websites","publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jassweb.com\/solved\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jassweb.com\/solved\/#organization","name":"Jass Web","url":"https:\/\/jassweb.com\/solved\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/","url":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","contentUrl":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","width":693,"height":132,"caption":"Jass Web"},"image":{"@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31","name":"Kirat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1776403586","caption":"Kirat"},"sameAs":["http:\/\/jassweb.com"],"url":"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/16657","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/comments?post=16657"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/16657\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=16657"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=16657"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=16657"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}