ArgumentException:JSON解析错误:在对象成员之后缺少逗号或'}'

时间:2018-02-19 10:30:09

标签: c# json unity3d

我是一个关于JSON的总菜鸟,从来没有使用它,我只是想不出来。我尝试了很多东西,但我只是从错误跳到错误。我希望有人可以帮助我。

所以这是我的JSON文件的示例,我从网站上读到了这个文件。

[{"ID":60034,"Datetime":1519029071,"Module":"Krol 42","Latitude":51.8423083333333,"Longitude":4.57711,"Speed":0.59264},{"ID":58961,"Datetime":1519025476,"Module":"Krol 42","Latitude":51.8422666666667,"Longitude":4.576865,"Speed":0.59264}]

这是我的剧本:

[Serializable]
public class Item
{
    public int ID;
    public int Datetime;
    public string Module;
    public float Latitude;
    public float Longitude;
    public float Speed;
}

public class JsonHelper
{
    public static T[] getJsonArray<T>(string json)
    {
        string newJson = "{ \"array\": " + json + "}";
        Wrapper<T> wrapper = JsonUtility.FromJson<Wrapper<T>> (newJson);
        return wrapper.array;
    }

    [Serializable]
    private class Wrapper<T>
    {
        public T[] array;
    }
}

IEnumerator Start()
{
    string url = "http://tnt.ssedemo.eu/TrackAndTraceStrukton.aspx";
    WWW www = new WWW(url);

    yield return www;

    if (www.error == null)
    {
        string jsonString = www.text;
        Item[] item = JsonHelper.getJsonArray<Item> (jsonString);
        Debug.Log (item[0].ID);
    }
    else
    {
        Debug.Log("ERROR: " + www.error);
    }        
}

我现在得到的错误是:

ArgumentException:JSON解析错误:在对象成员之后缺少逗号或'}'。

我希望有人可以帮助我,我会很感激, 提前谢谢。

[编辑]

    [Serializable]
public class Item
{
    public int ID;
    public int Datetime;
    public string Module;
    public float Latitude;
    public float Longitude;
    public float Speed;
}

public class JsonHelper
{
    public static T[] getJsonArray<T>(string json)
    {
        string newJson = "{ \"array\": " + json + "}";
        Wrapper<T> wrapper = JsonUtility.FromJson<Wrapper<T>> (newJson);
        return wrapper.array;
    }

    [Serializable]
    private class Wrapper<T>
    {
        public T[] array;
    }
}

IEnumerator Start()
{
    string url = "http://tnt.ssedemo.eu/TrackAndTraceStrukton.aspx";
    WWW www = new WWW(url);

    yield return www;

    if (www.error == null){
        string jsonString = www.text;
        int index = jsonString.LastIndexOf("]");
        if (index > 0){ 
            jsonString = jsonString.Substring(0, index + 1);
        }
        Item[] item = JsonHelper.getJsonArray<Item> (jsonString);
        foreach(Item krol in item){
            Transform ride = Instantiate(prefab, new Vector3(krol.Longitude * 10f, 2f, krol.Latitude * 10f), Quaternion.identity) as Transform;
        }
    } else {
        Debug.Log("ERROR: " + www.error);
    }        
}

0 个答案:

没有答案