110,534
社区成员
发帖
与我相关
我的任务
分享
public class a
{
public string a{get;set;}
public int b{get;set;}
.......
public float c{get;set;}
}
public struct a
{
public string a;
public int b;
.......
public float c;
}
public class asc
{
public int i{get;set;}
public string s{get;set;}
}
public class pub
{
public string command
{
get;
set;
}
public object obj
{
get;
set;
}
public string conditions
{
get;
set;
}
}
public static void test8()
{
asc ac = new asc();
ac.i = 5;
ac.s = "实验";
pub p = new pub();
p.command = "shiyan";
p.obj = ac;
p.conditions = "试验";
DataContractJsonSerializer js = new DataContractJsonSerializer(typeof(pub));
MemoryStream ms = new MemoryStream();
js.WriteObject(ms, p);
System.Console.WriteLine(Encoding.UTF8.GetString(ms.ToArray()));
}
[/quote]
如果你必须用object类型的话,用Json.net吧。 asc ac = new asc();
ac.i = 5;
ac.s = "实验";
pub p = new pub();
p.command = "shiyan";
p.obj = ac;
p.conditions = "试验";
Console.WriteLine(fastCSharp.setup.cSharp.json.toJson.Get(p));
static void Main(string[] args)
{
IObj a = new A();
a.Name = "张三";
IObj b = new B();
b = a;
Console.WriteLine(b.Name);
Console.WriteLine(a.Name);
Console.ReadKey();
}
interface IObj
{
string Name { set; get; }
}
struct A : IObj
{
public string Name
{
set;
get;
}
}
class B : IObj
{
public string Name
{
get;
set;
}
}
Newtonsoft.Json.JsonConvert.SerializeObject(data) //直接用这个类就可以转换为json对象了
public class asc
{
public int i{get;set;}
public string s{get;set;}
}
public class pub
{
public string command
{
get;
set;
}
public object obj
{
get;
set;
}
public string conditions
{
get;
set;
}
}
public static void test8()
{
asc ac = new asc();
ac.i = 5;
ac.s = "实验";
pub p = new pub();
p.command = "shiyan";
p.obj = ac;
p.conditions = "试验";
DataContractJsonSerializer js = new DataContractJsonSerializer(typeof(pub));
MemoryStream ms = new MemoryStream();
js.WriteObject(ms, p);
System.Console.WriteLine(Encoding.UTF8.GetString(ms.ToArray()));
}
using (MemoryStream stream1 = new MemoryStream())
{
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(ClassOuter));
ser.WriteObject(stream1, outer);
stream1.Position = 0;
using (StreamReader sr = new StreamReader(stream1))
{
string result1 = sr.ReadToEnd();
}
}
结果也是
{"classA":{"a":"aaa","b":10,"c":9.99},"d":20}
public class pub
{
//命令,用于指示对方程序该做什么
public string a{get;set;}
//数据,为一个类的实例
public object b{get;set;}
}
我是要发送这样的数据,但是JsonConvert.SerializeObject(pub)这样的话,会在public object b{get;set;}这里报错
public class ClassOuter
{
public ClassA classA { get; set; }
public int d { get; set; }
}
public class ClassA
{
public string a{get;set;}
public int b{get;set;}
public float c{get;set;}
}
调用:
ClassOuter outer = new ClassOuter()
{
classA = new ClassA()
{
a = "aaa",
b = 10,
c = 9.99f
},
d = 20
};
string result = JsonConvert.SerializeObject(outer);
结果
{"classA":{"a":"aaa","b":10,"c":9.99},"d":20}
public class ClassA
{
public string a{get;set;}
public int b{get;set;}
public float c{get;set;}
}
调用
ClassA a = new ClassA()
{
a = "aaa",
b = 10,
c = 9.99f
};
string result = JsonConvert.SerializeObject(a);
结果:
{"a":"aaa","b":10,"c":9.99}
用的Json.Net( http://james.newtonking.com/json)