【转】Unity利用WWW http传输Json数据

时间:2021-11-13 20:12:25

http://blog.csdn.net/h570768995/article/details/50386935

首先去下载LitJson.dll,放在Plugins 目录下;

LitJson可以从下面的地址获得:http://download.csdn.net/detail/h570768995/9373927

然后我们定义json格式,比如我们需要如下格式:

{"intValue":345,"longValue":345679876,"stringValue":"xiaoxian","byteValue":'v',"doubleValue":345.87}

为了能对应该Json格式,我们需要定义如下类:
  1. public class MessageJson
  2. {
  3. public int intValue;
  4. public long longValue;
  5. public string stringValue;
  6. public byte byteValue;
  7. public double doubleValue;
  8. }

然后在方法中声明该类,接着将其映射为Json格式:

  1. MessageJson msgJson = new MessageJson();
  2. msgJson.intValue = 20;
  3. msgJson.longValue = 10000000000000L;
  4. msgJson.stringValue = "chenhao";
  5. msgJson.byteValue = (byte)msgJson.intValue;
  6. msgJson.doubleValue = 3153456.125651;
  7. string jsonDataPost = JsonMapper.ToJson(msgJson);

如此将该数据传送出去:

  1. WWW www = new WWW("http://192.168.1.192:18080/test",Encoding.UTF8.GetBytes(jsonDataPost));

接着等待数据,并可以打印出来:

  1. while(!www.isDone)
  2. {
  3. Debug.Log("wait");
  4. }
  5. yield return www;
  6. if(www.error!=null)
  7. {
  8. Debug.LogError(www.error);
  9. }
  10. else
  11. {
  12. Debug.Log(www.text);
  13. //取数据1
  14. MessageJson msgJsonRecieve = JsonMapper.ToObject<MessageJson>(www.text);
  15. Debug.Log(msgJsonRecieve.intValue);
  16. Debug.Log(msgJsonRecieve.longValue);
  17. Debug.Log(msgJsonRecieve.stringValue);
  18. Debug.Log(msgJsonRecieve.byteValue);
  19. Debug.Log(msgJsonRecieve.doubleValue);
  20. //取数据2
  21. JsonData jsonData = JsonMapper.ToObject(www.text);
  22. if (jsonData["stringValue"] != null)
  23. {
  24. Debug.Log(jsonData["stringValue"].ToString());
  25. }
【转】Unity利用WWW http传输Json数据

JsonMapper映射可以无视排序问题,它只看“键值对”中的键。