gpt4 book ai didi

c# - 使用嵌套类创建类的 Javascript JSON

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:21:11 25 4
gpt4 key购买 nike

我想在 JavaScript 中创建一个具有嵌套对象的 JSON 对象。

这里是类:

public class CellChanged
{
private CellLocation _Location = null;
private double _CellValue = 0;

public CellLocation Location
{
get
{
return this._Location;
}
set
{
this._Location= value;
}
}

public double CellValue
{
get
{
return this._CellValue;
}
set
{
this._CellValue = value;
}
}

}


public class CellLocation
{

#region Members

private int _Worksheet = 0;
private int _Row = 0;
private int _Column = 0;
private string _CellName;

#endregion //Members

#region Properties

public int Worksheet
{
get
{
return this._Worksheet;
}
internal set
{
this._Worksheet = value;
}
}

public int Row
{
get
{
return this._Row;
}
internal set
{
this._Row = value;
}
}

public int Column
{
get
{
return this._Column;
}
set
{
this._Column = value;
}
}

public string CellName
{
get
{
return this._CellName;
}
internal set
{
this._CellName = value;
}
}

#endregion //Properties

#region Constructors

internal CellLocation()
{

}

public CellLocation(int worksheet, string cellName)
{
this.Worksheet = worksheet;
this.CellName = cellName;
int i = 0;
string columnRaw = String.Empty;
string rowRaw = String.Empty;
int column = 0;
int row = 0;
while (Char.IsLetter(this.CellName, i))
{
columnRaw += this.CellName.Substring(i, 1);
i++;
}
column = Utilities.Excel.ColumnLetterToNumber(columnRaw);
rowRaw = this.CellName.Substring(i);
if (!Int32.TryParse(rowRaw, out row))
throw new ApplicationException(String.Format("Cell name {0} is invalid", cellName));

this.Row = row - 1;
this.Column = column;
}

[JsonConstructorAttribute]
public CellLocation(int worksheet, int row, int column)
{
this.Worksheet = worksheet;
this.Row = row;
this.Column = column;
//set the cell name
this.CellName = String.Concat(Utilities.Excel.ColumnNumberToLetter(column), row + 1);
}

#endregion //Constructors

}

这是我希望输出的最终字符串:

"{\"Location\":{\"Worksheet\":1,\"Row\":2,\"Column\":3},\"CellValue\":4.5}"

正确的做法是什么?

如果重要的话,我在后端使用 Newtonsoft JSON 库。

最佳答案

这比我想象的要容易得多。

这是 JavaScript:

var cellChanged = {
"Location": {
"Worksheet": workSheetCurrent
, "Row": row
, "Column": column
}
, "CellValue": cellValue
};

在服务器端,使用 Newtonsoft JSON 库进行反序列化更加简单:

CellChanged cell = JsonConvert.DeserializeObject<CellChanged>(context.Request["CellChanged"]);

关于c# - 使用嵌套类创建类的 Javascript JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7895715/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com