Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 创建JSON字符串并序列化它_C#_Json - Fatal编程技术网

C# 创建JSON字符串并序列化它

C# 创建JSON字符串并序列化它,c#,json,C#,Json,考虑: { "Session": "0544dffdrfded", "USERSession": "5588strrft235", "Id": "984", "Field.Type": "SingleField", "Fields[0].Name": "ID", "Fields[0].fieldType.typeName": "LOG", "Fields[0].helpText": "12587", "Fields[0].maxlength": 32, "Fi

考虑:

{
  "Session": "0544dffdrfded",
  "USERSession": "5588strrft235",
  "Id": "984",
  "Field.Type": "SingleField",
  "Fields[0].Name": "ID",
  "Fields[0].fieldType.typeName": "LOG",
  "Fields[0].helpText": "12587",
  "Fields[0].maxlength": 32,
  "Fields[0].name": "LOGIN",
  "Fields[0].size": 20,
  "Fields[0].value": "a",
  "Fields[0].Identifier": "LOGIN",
  "Fields[0].value": "LOGINFIELD",
  "Fields[0].isEditable": true,
  "Fields[1].displayName": "Password",
  "Fields[1].fieldType.typeName": "PASSWORD",
  "Fields[1].helpText": "285887",
  "Fields[1].maxlength": 32,
  "Fields[1].name": "PASSWORD",
  "Fields[1].size": 20,
  "Fields[1].value": "123",
  "Fields[1].valueIdentifier": "PASSWORD",
  "Fields[1].valueMask": "LOGINFIELD",
  "Fields[1].isEditable": true
}
我想创建一个类似于上述JSON参数的JSON字符串。我正在使用以下代码:

string jsonString = "{\"cobSessionToken\":'" + Session["cobsessiontoken"].ToString() + "',\"userSessionToken\":'" + Session["usersessintoken"].ToString() + "'\",\"siteId\":'" + Session["siteid"].ToString() + "',\"credentialFields.enclosedType\":'com.yodlee.common.FieldInfoSingle',\"credentialFields[0].displayName\":'Login ID',\"credentialFields[0].fieldType.typeName\":'IF_LOGIN',\"credentialFields[0].helpText\":'111427',\"credentialFields[0].maxlength\":'32',\"credentialFields[0].name\":'LOGIN',\"credentialFields[0].size\":'20',\"credentialFields[0].value\":'" + txtUserID.Text + "',\"credentialFields[0].valueIdentifier\":'LOGIN',\"credentialFields[0].valueMask\":'LOGIN_FIELD',\"credentialFields[0].isEditable\":'true',\"credentialFields[1].displayName\":'Password',\"credentialFields[1].fieldType.typeName\":'IF_PASSWORD'\",\"credentialFields[1].helpText\":'111428',\"credentialFields[1].maxlength\":'32',\"credentialFields[1].name\":'PASSWORD',\"credentialFields[1].size\":'20',\"credentialFields[1].value\":'" + txtPassword.Text + "',\"credentialFields[1].valueIdentifier\":'PASSWORD',\"credentialFields[1].valueMask\":'LOGIN_FIELD',\"credentialFields[1].isEditable\":'true'}";
         Label1.Text= JsonConvert.SerializeObject(jsonString);

如何做到这一点?

正确的方法是通过Newtonsoft JSON DLL文件序列化和反序列化对象。此链接直接从以下来源提供良好的示例:


因此,我建议使用对象而不是构建字符串。它很容易出错,维护也不好。

JSON必须是这样吗?这将是一种非常非常奇怪的方式来表示JSON。通常你会有一个
字段
属性,它是一个由两个对象组成的数组,每个对象的属性都是
名称
,等等(我强烈建议不要像那样构建JSON。改用JSON API,比如JSON.NET)。你可以使用JObject.Parse(jsonString)@prayahbhatt去阅读右边的示例,然后阅读文档。Newtonsoft dll是json.net,它们是相同的。但是正确地使用它。为什么要尝试序列化字符串?如果您需要json字符串,请序列化一个对象,如果您已经手动创建了json字符串,则不需要更多的序列化!我没有使用任何类来反序列化json响应。我直接在动态变量中获取响应并反序列化它。我不知道如何使用类来序列化和反序列化json,因此您应该看看Newtonsoft json。因为这正是您想要的,有时使用类而不重新发明轮子是很好的。