我需要将以下XML数据转换为有效的JSON格式
<GroupCode>
<PickType KeyType = "438">
<R>
<K>43800001</K>
<D>data 1</D>
</R>
<R>
<K>43800099</K>
<D>data 2</D>
</R>
<R>
<K>43800014</K>
<D>data 3</D>
</R>
</PickType>
<PickType KeyType = "439">
<R>
<K>43900001</K>
<D>Data 1</D>
</R>
<R>
<K>43900099</K>
<D>Data 2</D>
</R>
<R>
<K>43900023</K>
<D>Data 3</D>
</R>
</PickType>
<PickType KeyType = "440">
<R>
<K>44000001</K>
<D>Data 1</D>
</R>
<R>
<K>44000025</K>
<D>Data 2</D>
</R>
<R>
<K>44000024</K>
<D>Data 3</D>
</R>
</PickType>
<PickType KeyType = "441">
<R>
<K>44100001</K>
<D>Data 1</D>
</R>
<R>
<K>44100099</K>
<D>data 2</D>
</R>
<R>
<K>44100054</K>
<D>Data 3</D>
</R>
</PickType>
</GroupCode>
我编写了以下C#代码将其转换为JSON。 这个XML格式存储在数据库中的一列(数据类型CLOB)中,我正在读取c#,之后我正在尝试序列化XML数据,但我得到了无效的JSON格式。
JavaScriptSerializer serial = new JavaScriptSerializer();
string jArray = string.Empty;
List<MainSubDetails> lstMainSubDetails = new List<MainSubDetails>();
MainSubDetails getMainSubDetails;
foreach (DataRow dRow in XmlMainSub.Rows) {
getMainSubDetails = new MainSubDetails();
getMainSubDetails.strResult = dRow["STRRESULT"].ToString();
lstMainSubDetails.Add(getMainSubDetails);
}
objParamResult.ResultDt = serial.Serialize(lstMainSubDetails);
[{"strResult":"\u003cGroupCode\u003e\u003cPickType KeyType=\"438\"\u003e\u003cR\u003e\u003cK\u003e43800001\u003c/K\u003e\u003cD\u003eResident Demand Deposit\u003c/D\u003e\u003c/R\u003e\u003cR\u003e\u003cK\u003e43800099\u003c/K\u003e\u003cD\u003eNot Applicable\u003c/D\u003e\u003c/R\u003e\u003cR\u003e\u003cK\u003e43800014\u003c/K\u003e\u003cD\u003eCash\u003c/D\u003e\u003c/R\u003e\u003cR\u003e\u003cK\u003e43800012\u003c/K\u003e\u003cD\u003eIncome and Expenditure\u003c/D\u003e\u003c/R\u003e\u003cR\u003e\u003cK\u003e43800011\u003c/K\u003e\u003cD\u003eOther Liabilities\u003c/D\u003e\u003c/R\u003e\u003cR\u003e\u003cK\u003e43800010\u003c/K\u003e\u003cD\u003eOther Assets\u003c/D\u003e\u003c/R\u003e\u003cR\u003e\u003cK\u003e43800009\u003c/K\u003e\u003cD\u003eBankers\u003c/D\u003e\u003c/R\u003e\u003cR\u003e\u003cK\u003e43800008\u003c/K\u003e\u003cD\u003eBar\u003c/D\u003e\u003c/R\u003e\u003cR\u003e\u003cK\u003e43800007\u003c/K\u003e\u003cD\u003eDD\u003c/D\u003e\u003c/R\u003e\u003cR\u003e\u003cK\u003e43800006\u003c/K\u003e\u003cD\u003eHO\u003c/D\u003e\u003c/R\u003e\u003cR\u003e\u003cK\u003e43800005\u003c/K\u003e\u003cD\u003eAdvance\u003c/D\u003e\u003c/R\u003e\u003cR\u003e\u003cK\u003e43800004\u003c/K\u003e\u003cD\u003eInvestments\u003c/D\u003e\u003c/R\u003e\u003cR\u003e\u003cK\u003e43800003\u003c/K\u003e\u003cD\u003eBills\u003c/D\u003e\u003c/R\u003e\u003cR\u003e\u003cK\u003e43800002\u003c/K\u003e\u003cD\u003eResident Term Deposit\u003c/D\u003e\u003c/R\u003e\u003c/PickType\u003e\u003cPickType KeyType=\"439\"\u003e\u003cR\u003e\u003cK\u003e43900001\u003c/K\u003e\u003cD\u003eDemand Deposit - Individual\u003c/D\u003e\u003c/R\u003e\u003cR\u003e\u003cK\u003e43900099\u003c/K\u003e\u003cD\u003eNot Applicable\u003c/D\u003e\u003c/R\u003e\u003cR\u003e\u003cK\u003e43900023\u003c/K\u003e\u003cD\u003eAdvances-LT\u003c/D\u003e\u003c/R\u003e\u003cR\u003e\u003cK}]
预期输出:
{
"GroupCode": {
"PickType": [
{
"-KeyType": "438",
"R": [
{
"K": "43800001",
"D": "data 1"
},
{
"K": "43800099",
"D": "data 2"
},
{
"K": "43800014",
"D": "data 3"
}
]
},
{
"-KeyType": "439",
"R": [
{
"K": "43900001",
"D": "Data 1"
},
{
"K": "43900099",
"D": "Data 2"
},
{
"K": "43900023",
"D": "Data 3"
}
]
},
{
"-KeyType": "440",
"R": [
{
"K": "44000001",
"D": "Data 1"
},
{
"K": "44000025",
"D": "Data 2"
},
{
"K": "44000024",
"D": "Data 3"
}
]
},
{
"-KeyType": "441",
"R": [
{
"K": "44100001",
"D": "Data 1"
},
{
"K": "44100099",
"D": "data 2"
},
{
"K": "44100054",
"D": "Data 3"
}
]
}
]
}
}