我想收到一个像这样的json对象:
"datasets": [{
"label": "# of Votes",
"data": [20, 10, 3],
"backgroundColor": [
"#ccf9d6",
"#ccf9d6",
"#ccf9d6"
],
"borderWidth": 1
}]
但在序列化之前,我必须创建对象,我不知道它应该在后面的代码中查看对象。我有类似的东西,但这是错的。
datasets = new ChartDatasets[4]
{
label = "# of Votes",
data = new int[3] { 20, 10, 3 },
backgroundColor = new string[3] { "#ccf9d6", "#ccf9d6", "#ccf9d6" },
borderWidth = 1
}
有人可以帮助我吗?
答案 0 :(得分:5)
虽然您创建的类型ChartDatasets
的数组可能最多可容纳该类型的四个实例,但您不需要创建此类型的实例 。你需要这个:
datasets = new ChartDatasets[4] {
new ChartDatasets {
label = "# of Votes",
data = new int[3] { 20, 10, 3 },
backgroundColor = new string[3] { "#ccf9d6", "#ccf9d6", "#ccf9d6" },
borderWidth = 1
}
}
但是,您也可以省略维度甚至数组类型,因为编译器会尝试自动推断出正确的类型:
datasets = new [] {
new ChartDatasets {
label = "# of Votes",
data = new [] { 20, 10, 3 },
backgroundColor = new [] { "#ccf9d6", "#ccf9d6", "#ccf9d6" },
borderWidth = 1
}
}
作为一个aisde,你应该考虑以单数形式命名你的类型的实例,除非它们真的代表某种类型的集合。在您的情况下,您有一个类型为CharDataset
的实例的数组(肯定是一个集合)。
答案 1 :(得分:2)
有一个neat website可以将JSON转换为漂亮的C#代码。你的问题被标记为C#,所以我猜你想要的是什么。
它为您的代码输出:
from Tkinter import *
import os; import obspy
class MyGui:
def __init__(self, master):
self.master = master
master = Frame(root)
master.pack(side='top')
##### Input One
self.one_txt = Label(master, text='Input One')
self.one_txt.pack(side='top')
self.one = StringVar()
self.one.set('1349860')
self.one_entry = Entry(master, width=10, textvariable=self.one, justify=CENTER, relief=RAISED, background='yellow',font=("bold") );
self.one_entry.pack(side='top')
##### Input Two
self.two_text = Label(master,text='two')
self.two_text.pack(side='top')
self.two = StringVar()
self.two.set('abcde')
self.two_entry = Entry(master, width=10, textvariable=self.two, justify=CENTER, relief=RAISED, font=("bold"));
self.two_entry.pack(side='top')
## Define a function for the button callback
self.one4bash = self.one.get(); self.two4bash = self.two.get()
def script4bash(self):
os.system("bash script1.sh %s %s" % (self.one4bash, self.two4bash))
self.runBash = Button(master, text='Run', command=self.one4bash)
self.runBash.pack(side='top')
root = Tk()
root.title("Event Discrimination Window")
mygui = MyGui(root)
root.geometry("500x400")
root.mainloop()
至于创建一个包含其他对象数组的对象,我建议使用上面代码中的方法,其中有一个类列表,每个类都有许多对象