Estoy limitado por Unity3d 3 nuevas medidas de seguridad para usar LitJson para la aplicación Web Player; de lo contrario, no se compilará.
¿Existe una forma sencilla de serializar esta salida como un objeto (contenido de userEcoGet.text):
{"building_id":"1","building_level":"0","workers":"0","building_health":"100"}{"building_id":"2","building_level":"0","workers":"0","building_health":"100"}...{"building_id":"32","building_level":"0","workers":"0","building_health":"100"}Este código solo ingresa el primer objeto de JSON:
using UnityEngine; using System.Collections; using LitJson; ... public EcoData localEcoData; ... localEcoData = JsonMapper.ToObject<EcoData>(userEcoGet.text); ... public class EcoData { public string building_id; public string building_level; public string workers; public string building_health; }Convertir localEcoData en una matriz conduce a la falta de errores del constructor. Y simplemente no sé cómo anidar el constructor correctamente en esta situación, ni siquiera estoy seguro de si ayudaría.
En este punto, estoy recurriendo al uso de JsonReader y rellenando el objeto manualmente. Cualquier ayuda sería apreciada. Gracias.
Editar: Eso es una locura, asesinado todo el día de hoy solo por un formato JSON de mierda que me infligí a mí mismo ...
Esto funciona perfectamente ahora, localEcoData[1,2...32] es una matriz de objetos con todos los elementos accesibles:
public EcoData[] localEcoData; ... localEcoData = JsonMapper.ToObject<EcoData[]>(userEcoGet.text);Todo lo que tenía que hacer era redactar JSON correctamente en la página de PHP que maneja MySql y volver a transferir a Unity de manera ordenada. Estaba haciendo eco directamente sin usar una matriz para la transferencia. Ahora la salida se ve así y funciona muy bien:
[{"building_id":"1","building_level":"0","workers":"0","building_health":"100"}{"building_id":"2","building_level":"0","workers":"0","building_health":"100"}...{"building_id":"32","building_level":"0","workers":"0","building_health":"100"}]¡Gracias hombre!
Sospecho que el problema está en tu propio JSON. no está en el formato correcto. Para analizarlo como JSON Array, deberá tenerlo en formato:
{ result:[ {"building_id":"1","building_level":"0","workers":"0","building_health":"100"}, {"building_id":"2","building_level":"0","workers":"0","building_health":"100"},... {"building_id":"32","building_level":"0","workers":"0","building_health":"100"} ] }Si no tiene control sobre el JSON, es posible que deba dividir la cadena y tratar cada cadena como un solo objeto JSON y convertir cada elemento de la matriz a su tipo de objeto C#.