1

使用 DataContractJsonSerializer,我能够得到 Json 字符串。
现在,我想将此 Json(名为“流”)转换为 XML。有什么办法不使用“[WebInvoke(ResponseFormat = WebMessageFormat.Xml, BodyStyle = WebMessageBodyStyle.Wrapped)]”?

服务

[OperationContract]
    string JsonSerializeFromDatabase();
[OperationContract]        
    string XmlSerializeFromJson(string strJson);

客户端

WCFService.Service1Client client = new WCFService.Service1Client();
string stream = client.JsonSerializeFromDatabase();
string stream2 = client.XmlSerializeFromJson(stream);
div1.InnerText = stream2;

我目前拥有的服务器端(但没有运气)

public string XmlSerializeFromJson(string strJson)
    {
        Stream stream1 = new FileStream("temp.xml", FileMode.Create);
        XmlWriter xmlWriter = XmlWriter.Create(stream1);
        XmlSerializerser = new XmlSerializer(typeof(string));
        ser.Serialize(xmlWriter, strJson);

        stream1.Position = 0;
        StreamReader sr = new StreamReader(stream1);
        string strXml = sr.ReadToEnd();
        stream1.Dispose();
        stream1.Close();

        return strXml;
    }
4

1 回答 1

0

你需要先将你的json字符串反序列化为一个类型的实例,然后专门创建序列化器将类型的实例序列化为xml。

就像是:

var myInstance = new JavaScriptSerializer().Deserialize<InstanceType>(strJson);
var ser = new XmlSerializer(typeof(InstanceType));
ser.Serialize(xmlWriter, myInstance);
于 2013-10-03T14:07:51.653 回答