web-dev-qa-db-ja.com

コードにJSON文字列値を書き込む方法は?

次の文字列を文字列変数に格納したい

{"Id": "123"、 "DateOfRegistration": "2012-10-21T00:00:00 + 05:30"、 "Status":0}

これは私が使用するコードです。

String str="{"Id":"123","DateOfRegistration":"2012-10-21T00:00:00+05:30","Status":0}";

..しかし、エラーが表示されています..

19
user1811801

あなたはこれをしなければなりません

String str="{\"Id\":\"123\",\"DateOfRegistration\":\"2012-10-21T00:00:00+05:30\",\"Status\":0}";


お願い 参考のためにこれを参照してください
また msdnから:)

Short Notation  UTF-16 character    Description
\'  \u0027  allow to enter a ' in a character literal, e.g. '\''
\"  \u0022  allow to enter a " in a string literal, e.g. "this is the double quote (\") character"
\\  \u005c  allow to enter a \ character in a character or string literal, e.g. '\\' or "this is the backslash (\\) character"
\0  \u0000  allow to enter the character with code 0
\a  \u0007  alarm (usually the HW beep)
\b  \u0008  back-space
\f  \u000c  form-feed (next page)
\n  \u000a  line-feed (next line)
\r  \u000d  carriage-return (move to the beginning of the line)
\t  \u0009  (horizontal-) tab
\v  \u000b  vertical-tab
31
Freak

私はこれが好きです、文字列に単一引用符がないことを確認してください

string str = "{'Id':'123','DateOfRegistration':'2012 - 10 - 21T00: 00:00 + 05:30','Status':0}".Replace("'", "\"");
8

次のように文字列内の引用符をエスケープする必要があります。

String str="{\"Id\":\"123\",\"DateOfRegistration\":\"2012-10-21T00:00:00+05:30\",\"Status\":0}";
5
Basti M

ExpandoオブジェクトまたはXElementを使用してこれらの複雑なJSONを記述し、シリアル化する別の方法があります。

https://blogs.msdn.Microsoft.com/csharpfaq/2009/09/30/dynamic-in-c-4-0-introducing-the-expandoobject/

dynamic contact = new ExpandoObject();

contact.Name = “Patrick Hines”;

contact.Phone = “206-555-0144”;

contact.Address = new ExpandoObject();

contact.Address.Street = “123 Main St”;

contact.Address.City = “Mercer Island”;

contact.Address.State = “WA”;

contact.Address.Postal = “68402”;

//Serialize to get Json string using NewtonSoft.JSON
string Json = JsonConvert.SerializeObject(contact);
5
sudhAnsu63

あなたはそのように内側の引用符をエスケープする必要があります:

String str="{\"Id\":\"123\",\"DateOfRegistration\":\"2012-10-21T00:00:00+05:30\",\"Status\":0}";
2
Brian