arrays - 如何将 Json 数组作为统一字段传递给 WWWform

标签 arrays json unity3d

我想在 wwwform 中传递三个字段,其中包含两个单值和一个 json 数组。

这是我的 Json:

{
     "Fname":"Abc",
     "Lname":"Xyz",
     "Marks": [{"MarksA":"23","MarksB":"65" },
     {"MarksA":"24","MarksB":"56" } ]
   }

我目前的代码是
 void Start()
    {
        WWWForm form = new WWWForm();
        form.AddField("Fname", "Abc");
        form.AddField("Lname", "Xyz");
        //passing the array as string
        string Mymarks = "[{\"MarksA\":\"23\",\"MarksB\":\"65\" },{\"MarksA\":\"24\",\"MarksB\":\"56\" } ]";
        form.AddField("Marks", Mymarks);
        WWW www = new WWW("Urltoservice", form);
        StartCoroutine("PostRequest", www);
    }
    IEnumerator PostRequest(WWW www)
    {
        yield return www;
        if (www.error == null)
        {
            Debug.Log("Session Saved");
        }
        else
        {
            Debug.Log("WWW Error: " + www.error);

        }
    }

但我收到 500 internal server Error .请帮我。

最佳答案

尝试使用 WWW 而不是 WWWForm

    using UnityEngine;

    using UnityEngine.UI;

    using System.Collections;

    using System.Collections.Generic;

    public class SendData : MonoBehaviour {

     void Start()
     {
         gameObject.GetComponent<Button>().onClick.AddListener(SendOnClick);
     }
     IEnumerator WaitForWWW(WWW www)
     {
         yield return www;


         string txt = "";
         if (string.IsNullOrEmpty(www.error))
             txt = www.text;  //text of success
         else
             txt = www.error;  //error
         GameObject.Find("TextDemo").GetComponent<Text>().text =  "--------\n\n" + txt;
     }
     void SendOnClick()
     {
         try
         {
             GameObject.Find("TextDemo").GetComponent<Text>().text = "Starting..";   
             string ourPostData = "{\"MarksA\":\"23\",\"MarksB\":\"65\" },{\"MarksA\":\"24\",\"MarksB\":\"56\" }";
             Dictionary<string,string> headers = new Dictionary<string, string>();
             headers.Add("Content-Type", "application/json");
             byte[] jData = System.Text.Encoding.ASCII.GetBytes(ourPostData.ToCharArray());
             WWW api = new WWW("YOUR URL", jData, headers);
             StartCoroutine(WaitForWWW(api));
         }
         catch (UnityException ex) { Debug.Log(ex.message); }
     }

    }

关于arrays - 如何将 Json 数组作为统一字段传递给 WWWform,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30116272/

相关文章:

java - 反序列化 json 时跳过根元素

c# - UnityWebRequest如何打印所有Request headers

c# - 查找是否使用统一广告观看了完整视频

c++ - 为了 jsoncpp (c++) 编写

c# - ServiceStack.Text 没有按预期序列化我的对象

c# - 视频不使用统一在 Visual Studio 的本地机器上播放

Ruby:想要一个保留顺序的类似集合的对象

javascript - 如何从 Controller 内访问服务返回的对象

c++ - 为什么具有非常量值的数组定义没有编译错误?

php - 如何向数据库中插入多个数组?