Net 3.5 で JavaScriptSerializer を使用して、次の JSON 構造を生成しようとしています。
{
"chart": "pie",
"series": [
{
"name": "Browsers",
"data": [
[
"Firefox",
6
],
[
"MSIE",
4
]
],
"size": "43%"
}
]
}
私が直面している問題は、データセクションに関するものです。dataの上記の構造にシリアル化するクラスを作成できないようです。
主題に触れる他の投稿を読みましたが、解決策は常にJSON.Netを使用することです。たとえば、JavaScriptSerializer を使用して辞書をシリアライズします。ただし、JavaScriptSerializer または .Net 3.5 フレームワークのその他の組み込み機能を使用して、主に解決したいと考えています。
データ セクションを作成するにはどうすればよいですか?
*EDIT JavaScriptSerializer でこれを解決する方法は、シリアライズしようとしているオブジェクトのデータ プロパティのオブジェクト配列を作成することです。
入力パラメータデータは「Firefox:6\nMSIE:4\nChrome:7」です。
public object[] GetData(string data) { var dataStrArr = data.Split(new[] { Environment.NewLine }, StringSplitOptions.None);
var dataArr = new object[dataStrArr.Length];
for (var index = 0; index < dataStrArr.Length; index++)
{
var component = dataStrArr[index];
var componentArr = component.Split(':');
if (componentArr.Length != 2)
continue;
var key = componentArr[0];
decimal value;
if (decimal.TryParse(componentArr[1], out value))
{
var keyValueArr = new object[2];
keyValueArr[0] = key;
keyValueArr[1] = value;
dataArr[index] = keyValueArr;
}
}
return dataArr;
}