Ich weiß, dass es viele Thread sprechen über JSON-Daten analysieren, aber die JSON-Daten, die ich von meinem Server bekomme, ist nicht üblich.Parse JSON-Daten vom Server
Also ich habe ein C# Skript in der Einheit, die Json Daten von meinem node.js Server mit Websocket bekommen.
Das ist mein Code in der Einheit:
using UnityEngine;
using System.Collections;
using System;
using System.Threading;
using WebSocketSharp;
[Serializable]
public class ParamJSON
{
public string parameter;
public string unit;
public int count;
public float value;
public Time time;
}
public class Program : MonoBehaviour
{
string waka;
ParamJSON data;
WebSocket ws;
// Use this for initialization
void Start()
{
ws = new WebSocket(url of server);
print("Open socket: " + ws.ReadyState);
print("Websocket Alive: " + ws.IsAlive);
ws.OnMessage += (sender, e) =>
{
waka = e.Data;
print(waka);
//ParamJSON[] obj = JsonHelper.getJsonArray<ParamJSON>(waka);
//print(obj);
//ParamJSON P = JsonUtility.FromJson<ParamJSON>(waka);
//Debug.Log(P.parameter);
//data = CreateFromJSON(waka);
//Debug.Log(data);
//Debug.Log("parameter = " + data.parameter);
//print("JSON data : " + CreateFromJSON(waka));
};
ws.OnOpen += (sender, e) => {
print("WebSocket-> Open:");
print("Open socket-> OnOpen: " + ws.ReadyState);
};
ws.OnError += (sender, e) => {
print("WebSocket-> Error: " + e.Message);
print("Open socket-> OnError: " + ws.ReadyState);
};
ws.OnClose += (sender, e) => {
print("WebSocket-> Close-code: " + e.Code);
print("WebSocket-> Close-reason: " + e.Reason);
print("Open socket-> OnClose: " + ws.ReadyState);
};
ws.Connect();
}
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;
}
}
//public static ParamJSON CreateFromJSON(string jsonString)
//{
// return JsonUtility.FromJson<ParamJSON>(jsonString);
//}
// Update is called once per frame
void Update()
{
}
void OnDestroy()
{
if (ws != null && ws.ReadyState == WebSocketState.Open)
ws.Close();
}
}
Die Ausgabe von der Konsole ist: 42 [ "P0", "{\" Einheit \ ": \" hPA \“, \ "Zeit \": "11: 18: 06.836736", "count": 7, "parameter": "P0", "value": 1021.799988} "]
Also würde ich gerne wissen Wie kann ich diese JSON-Daten analysieren? Wenn es möglich ist so etwas wie (in meiner Konsole) haben:
Einheit: hPA
Zeit: 11: 18: 06,836736
Zahl: 7
etc ...
All die Zeile im Kommentar ist alles, was ich bereits versucht habe zu tun.
Vielen Dank!
Der angegebene JSON ist nicht gültig. –
Ihr JSON ist nicht gültig. Wenn Sie das beheben und tatsächlich einen gültigen JSON haben, sehen Sie sich die Antwort an, die ich verlinkt habe. – Programmer