JSON serializer
Наследование: ModelWriter
Пример #1
0
 public JsonTcpCommunication(TcpClient socket)
     : base(socket)
 {
     JsonResolverStrategy resolver = new JsonResolverStrategy();
     _jsonIn = new JsonReader(new DataReaderSettings(resolver));
     _jsonOut = new JsonWriter(new DataWriterSettings(new ConventionResolverStrategy(ConventionResolverStrategy.WordCasing.CamelCase)));
 }
Пример #2
0
    public static string DynamicToString(dynamic c)
    {
        JsonFx.Json.JsonWriter cJsonWriter = new JsonFx.Json.JsonWriter();
        cJsonWriter.Settings.PrettyPrint = false;

        return(cJsonWriter.Write(c));
    }
Пример #3
0
 public void SaveSettings(bool refresh = false)
 {
     if (refresh) GetSceneInfomation(false);
     string apath = Application.dataPath.Replace("/Assets", "");
     string ufile = Path.Combine(apath, "UnityBabylonOptions.ini");
     var settings = new DataWriterSettings() { PrettyPrint = true };
     var jsWriter = new JsonWriter(settings);
     File.WriteAllText(ufile, jsWriter.Write(exportationOptions));
 }
        public IEncoder GetEncoder()
        {
            var jsonWriter = new JsonWriter(new DataWriterSettings(DefaultEncoderDecoderConfiguration.CombinedResolverStrategy()
                , new TeamCityDateFilter()), new[] { "application/.*json", "text/.*json" });

            var writers = new List<IDataWriter> { jsonWriter };
            var dataWriterProvider = new RegExBasedDataWriterProvider(new List<IDataWriter> { jsonWriter });
            return new DefaultEncoder(dataWriterProvider);
        }
Пример #5
0
    public override string Serialize <T>(T obj)
    {
        var w = new JsonFx.Json.JsonWriter();
        var s = Environment.TickCount;
        var r = w.Write(obj);

        SerializeTimeList.Add(Environment.TickCount - s);
        return(r);
    }
Пример #6
0
        protected override void Render(JsonWriter writer)
        {
            writer.TextWriter.Write(JbstPlaceholder.PlaceholderStatementStart);

            writer.Write(JbstInline.InlinePrefix+this.NameExpr);

            writer.TextWriter.Write(
                JbstPlaceholder.PlaceholderStatementEndFormat,
                this.DataExpr,
                this.IndexExpr,
                this.CountExpr);
        }
Пример #7
0
        public void Encode()
        {
            var id = new InstrumentData() { Pitch = 31, Roll = 89 };

            var x = new JsonWriter();
            var js = x.Write(id);

            var y = new JsonReader();
            var decoded = y.Read<InstrumentData>(js);

            Assert.AreEqual(id.Roll, decoded.Roll);
            Assert.AreEqual(id.Pitch, decoded.Pitch);
        }
Пример #8
0
        public Packet()
        {
            type = 0;
            operation = 0;

            output = new StringBuilder();
            JsonWriterSettings settings = new JsonWriterSettings();
            settings.PrettyPrint = false;
            settings.AddTypeConverter (new VectorConverter());
            settings.AddTypeConverter( new QuaternionConverter());
            // TODO: Add any other TypeConverters here
            writer = new JsonWriter (output,settings);
        }
Пример #9
0
		public void Write_StringArrayDefaults_SerializesArray()
		{
			var input = new string[]
				{
					"aaa",
					"bbb"
				};
			var expected = @"[""aaa"",""bbb""]";

			var actual = new JsonWriter().Write(input);

			Assert.Equal(expected, actual);
		}
Пример #10
0
        /// <summary>
        /// Serialize the specified message using either JSONFX or NEWTONSOFT.JSON.
        /// The functionality is based on the pre-compiler flag
        /// </summary>
        /// <param name="message">Message.</param>
        public static string Serialize(object message)
        {
            string retMessage;

            #if (USE_JSONFX)
            var writer = new JsonFx.Json.JsonWriter();
            retMessage = writer.Write(message);
            retMessage = ConvertHexToUnicodeChars(retMessage);
            #else
            retMessage = JsonConvert.SerializeObject(message);
            #endif
            return(retMessage);
        }
Пример #11
0
        public void WriteToBabylonFile()
        {
            babylonScene.Prepare();

            var outputFile = Path.Combine(OutputPath, SceneName + ".babylon");

            var jsWriter = new JsonWriter(new DataWriterSettings(new DataContractResolverStrategy()));
            string babylonJSformat = jsWriter.Write(babylonScene);
            using (var sw = new StreamWriter(outputFile))
            {
                sw.Write(babylonJSformat);
                sw.Close();
            }
        }
Пример #12
0
		public void Write_OnlyDefaults_SerializesIso8601Dates()
		{
			var input = new object[]
				{
					"Normal string before",
					new DateTime(2008, 2, 29, 23, 59, 59, 999, DateTimeKind.Utc),
					new DateTime(2010, 7, 5, 10, 51, 17, 768, DateTimeKind.Unspecified),
					"Normal string after"
				};
			var expected = @"[""Normal string before"",""2008-02-29T23:59:59.999Z"",""2010-07-05T10:51:17.768"",""Normal string after""]";

			var actual = new JsonWriter().Write(input);

			Assert.Equal(expected, actual);
		}
Пример #13
0
 public static string ToBase64Json(string code, string name = null)
 {
     var program = new Program
                       {
                           AuthorId = GetWindowsLiveAnonymousId(),
                           Name = name ?? string.Empty,
                           Code = Convert.ToBase64String(Encoding.UTF8.GetBytes(code))
                       };
     program.Hash = Program.CreateHash(program);
     var writer =
         new JsonWriter(
             new DataWriterSettings(
                 new ConventionResolverStrategy(ConventionResolverStrategy.WordCasing.PascalCase)));
     return writer.Write(program);
 }
Пример #14
0
        public void SetProjectParameters(Action<IBuildProjectHavingBuilder> having, Action<IBuildParameterValueBuilder> parameters)
        {
            var buildConfigurationHavingBuilder = m_BuildProjectHavingBuilderFactory.CreateBuildProjectHavingBuilder();
            having(buildConfigurationHavingBuilder);
            var projectLocator = buildConfigurationHavingBuilder.GetLocator();

            var writer = new JsonWriter(new DataWriterSettings(new ConventionResolverStrategy(ConventionResolverStrategy.WordCasing.CamelCase)));

            BuildParameterValueBuilder buildParameterValueBuilder = new BuildParameterValueBuilder();
            parameters(buildParameterValueBuilder);

            buildParameterValueBuilder.GetParameters()
                .ForEach(p => m_TeamCityCaller.PutFormat(writer.Write(p), HttpContentTypes.ApplicationJson,
                        "/app/rest/projects/{0}/parameters/{1}", projectLocator, p.Name));
        }
        public IEncoder GetEncoder()
        {
            var jsonWriter = new JsonWriter(new DataWriterSettings(CombinedResolverStrategy()),
                                            new[] {"application/.*json", "text/.*json"});
            var xmlWriter = new XmlWriter(new DataWriterSettings(CombinedResolverStrategy()),
                                          new[] {"application/xml", "text/.*xhtml", "text/xml", "text/html"});

            var urlEncoderWriter = new UrlEncoderWriter(new DataWriterSettings(CombinedResolverStrategy()),
                                                        new[] {"application/x-www-form-urlencoded"});

            var writers = new List<IDataWriter> { jsonWriter, xmlWriter, urlEncoderWriter };

            var dataWriterProvider = new RegExBasedDataWriterProvider(writers);

            return new DefaultEncoder(dataWriterProvider);
        }
Пример #16
0
    /// <summary>
    /// Method to write all not-yet-translated keys as well as already translated ones to a file for translation.
    /// </summary>
    public static void WriteTranslationsToFile(Dictionary <string, string> translationsToWrite)
    {
#if UNITY_EDITOR
        if (translationsToWrite == null)
        {
            log.Error(_Logger.User.Msaw, "WriteTranslationsToFile() failed because given translationsToWrite was null. Not writing anything.");
            return;
        }

        DictHolder dh = new DictHolder();
        dh.Translations = translationsToWrite;

        using (System.IO.StreamWriter singleProfileFile = new System.IO.StreamWriter(CurrentLanguageFileResources, false, new UTF8Encoding(false)))
        {
#if removeJsonFX
            System.Text.StringBuilder jsonLine = new System.Text.StringBuilder();
            JsonFx.Json.JsonWriter    writer   = new JsonFx.Json.JsonWriter(jsonLine);
            writer.Write(dh);
            singleProfileFile.WriteLine(jsonLine.ToString());
#else
            StringBuilder sb = new StringBuilder(translationsToWrite.Count * 80);             // assumption
            sb.Append("{\n    \"Translations\": {\n");
            bool firstLine = true;
            foreach (KeyValuePair <string, string> kvp in translationsToWrite.OrderBy(o => o.Key))
            {
                if (firstLine == false)
                {
                    sb.Append(",\n");
                }
                sb.Append("        \"");
                sb.Append(kvp.Key);
                sb.Append("\": \"");
                sb.Append(kvp.Value.Replace("\n", "\\n").Replace("\"", "\\\""));
                sb.Append("\"");
                firstLine = false;
            }
            sb.Append("\n     }\n}");
            if (log.IsDebugEnabled)
            {
                log.Debug(_Logger.User.Msaw, "Writing loca to " + CurrentLanguageFileResources + ": " + sb.ToString());
            }
            singleProfileFile.WriteLine(sb.ToString());
#endif
        }
#endif
    }
Пример #17
0
    public static string SerializeToString <T>(object type)
    {
        try
        {
            System.Text.StringBuilder output = new System.Text.StringBuilder();
            JsonFx.Json.JsonWriter    writer = new JsonFx.Json.JsonWriter(output, writesettings);
            writer.Write((T)type);

            return(output.ToString());
        }
        catch
        {
            Debug.Log("SerializeToString Exception");

            return(string.Empty);
        }
    }
Пример #18
0
        public void ReportError(Exception ex)
        {
            var report = new ErrorReport {Text = ex.ToString().Base64Encode()};
            report.Hash = ErrorReport.CreateHash(report);
            var writer =
                new JsonWriter(
                    new DataWriterSettings(
                        new ConventionResolverStrategy(ConventionResolverStrategy.WordCasing.PascalCase)));
            var json = writer.Write(report);

            var webClient = new WebClient();
            webClient.Headers[HttpRequestHeader.ContentType] = "application/json";
            webClient.Headers[HttpRequestHeader.Accept] = "application/json";
            Uri address = UriFactory.Create("exceptions/report");
            webClient.UploadStringCompleted += UploadStringCompleted;
            webClient.UploadStringAsync(address, json);
        }
Пример #19
0
 public static void SerializeToJson <T>(string pathfile, object type)
 {
     try
     {
         System.Text.StringBuilder output = new System.Text.StringBuilder();
         JsonFx.Json.JsonWriter    writer = new JsonFx.Json.JsonWriter(output, writesettings);
         writer.Write((T)type);
         //File.WriteAllText(pathfile, output.ToString());
     }
     catch (Exception ex1)
     {
         Debug.Log(ex1.InnerException.Message);// .printStackTrace();
     }
     catch
     {
         Debug.Log("SerializeToJson Exception");
     }
 }
Пример #20
0
        public static string SerializeUsingJSONFx (object message)
        {
            string retMessage;
            var writer = new JsonFx.Json.JsonWriter ();

            retMessage = writer.Write (message);
            retMessage = ConvertHexToUnicodeChars (retMessage);
            /*StringBuilder builder = new StringBuilder();
            using (TextWriter textWriter = new EncodingStringWriter(builder, Encoding.UTF8))
            {
                var writer = new JsonFx.Json.JsonWriter ();

                writer.Write (message, textWriter);

                return PubnubCryptoBase.ConvertHexToUnicodeChars("");
            }*/
            return retMessage;
        }
Пример #21
0
        /// <summary>
        /// Serialize the specified message using either JSONFX or NEWTONSOFT.JSON.
        /// The functionality is based on the pre-compiler flag
        /// </summary>
        /// <param name="message">Message.</param>
        public static string Serialize(object message)
        {
            string retMessage;

                                                #if (USE_JSONFX) || (USE_JSONFX_UNITY)
            var writer = new JsonFx.Json.JsonWriter();
            retMessage = writer.Write(message);
            retMessage = ConvertHexToUnicodeChars(retMessage);
                                                #elif (USE_JSONFX_UNITY_IOS)
            retMessage = JsonWriter.Serialize(message);
            retMessage = ConvertHexToUnicodeChars(retMessage);
                                                #elif (USE_MiniJSON)
            retMessage = Json.Serialize(message);
            UnityEngine.Debug.Log("retMessage: " + retMessage);
                                                #else
            retMessage = JsonConvert.SerializeObject(message);
                                                #endif
            return(retMessage);
        }
Пример #22
0
 public void WriteToBabylonFile(string outputFile)
 {
     ExporterWindow.ReportProgress(1, "Preparing babylon scene file...");
     babylonScene.Prepare(false);
     if (SceneController != null && SceneController.manifestOptions.exportManifest)
     {
         if (!String.IsNullOrEmpty(this.ManifestData))
         {
             var manifestFile = outputFile + ".manifest";
             File.WriteAllText(manifestFile, this.ManifestData);
         }
     }
     ExporterWindow.ReportProgress(1, "Serializing babylon scene file... This may take a while.");
     using (var file = File.CreateText(outputFile))
     {
         var settings = new DataWriterSettings(new BabylonSceneContractResolver()) { PrettyPrint = true };
         var jsWriter = new JsonWriter(settings);
         jsWriter.Write(babylonScene, file);
     }
 }
Пример #23
0
        /// <summary>
        /// Serialize the specified message using either JSONFX or NEWTONSOFT.JSON.
        /// The functionality is based on the pre-compiler flag
        /// </summary>
        /// <param name="message">Message.</param>
        public static string Serialize (object message)
        {
            string retMessage;
            #if (USE_JSONFX)
            //var resolver = new JsonFx.Serialization.Resolvers.CombinedResolverStrategy(new JsonFx.Serialization.Resolvers.DataContractResolverStrategy());
            //JsonFx.Serialization.DataWriterSettings dataWriterSettings = new JsonFx.Serialization.DataWriterSettings(resolver);

            /*byte[] b = ObjectToByteArray(message);
            char[] c = System.Text.Encoding.Unicode.GetString(b).ToCharArray();
            string str = new string(c);
            StringInfo stri = new StringInfo(str);
            Console.WriteLine("str:" + stri.String);*/
            var writer = new JsonFx.Json.JsonWriter();
            retMessage = writer.Write(message);
            retMessage = ConvertHexToUnicodeChars(retMessage);
            /*var readerSettings = new JsonFx.Serialization.DataReaderSettings(); 
            JsonFx.Serialization.DataWriterSettings dataWriterSettings = new JsonFx.Serialization.DataWriterSettings(readerSettings);

            var writer = new JsonFx.Json.JsonWriter(dataWriterSettings);

            retMessage = writer.Write(message);
            retMessage = ConvertHexToUnicodeChars(retMessage);*/
            /*StringBuilder builder = new StringBuilder();
            //using (TextWriter textWriter = new EncodingStringWriter(builder, Encoding.Unicode))
            //{
                //var readerSettings = new JsonFx.Serialization.DataReaderSettings(); 
                //JsonFx.Serialization.DataWriterSettings dataWriterSettings = new JsonFx.Serialization.DataWriterSettings(readerSettings);


            TextWriter textWriter = new EncodingStringWriter(builder, Encoding.UTF8);
                var writer = new JsonFx.Json.JsonWriter ();

                writer.Write (message, textWriter);

            return PubnubCryptoBase.ConvertHexToUnicodeChars(builder.ToString());*/
            //}
            #else
            retMessage = JsonConvert.SerializeObject (message);
            #endif
            return retMessage;
        }
        /// <summary>
        /// Controls the control rendering style
        /// </summary>
        /// <param name="writer"></param>
        protected override void Render(JsonWriter writer)
        {
            if (!this.ChildControlsSpecified)
            {
                if (String.IsNullOrEmpty(this.NameExpr))
                {
                    throw new InvalidOperationException("jbst:Control requires either a named template or anonymous inline template.");
                }

                // name without child controls
                this.RenderSimpleControlReference(writer);
            }
            else if (String.IsNullOrEmpty(this.NameExpr))
            {
                // anonymous with child controls
                this.RenderAnonymousTemplate(writer);
            }
            else
            {
                // both name and child controls
                this.RenderWrapperControlReference(writer);
            }
        }
Пример #25
0
 void IJsonSerializable.WriteJson(JsonWriter writer)
 {
     if (this.NormalizeWhitespace)
     {
         writer.Write(this.NormalizedText);
     }
     else
     {
         writer.Write(this.Text);
     }
 }
Пример #26
0
 public void Write(TextWriter w)
 {
     JsonWriter jsw = new JsonWriter();
       jsw.Write(Operations, w);
 }
Пример #27
0
		public void Write_RecognizesMultipleDateTimeFiltersIsoFirst_SerializesIso8601Dates()
		{
			var input = new object[]
				{
					"Normal string before",
					new DateTime(2008, 2, 29, 23, 59, 59, 999, DateTimeKind.Utc),
					new DateTime(2010, 7, 5, 10, 51, 17, 768, DateTimeKind.Utc),
					"Normal string after"
				};
			var expected = @"[""Normal string before"",""2008-02-29T23:59:59.999Z"",""2010-07-05T10:51:17.768Z"",""Normal string after""]";

			var writer = new JsonWriter(
				new DataWriterSettings(new Iso8601DateFilter(), new MSAjaxDateFilter()));

			var actual = writer.Write(input);

			Assert.Equal(expected, actual);
		}
Пример #28
0
 static void DateSerializer(JsonFx.Json.JsonWriter writer, DateTime value)
 {
     writer.Write(new EJSON.EJSONDate(value));
 }
Пример #29
0
		public void GetTokens_MultipleConventions_ReturnsData()
		{
			var input = new CustomNamedObject
			{
				UpperPropertyName = "Foo.",
				OtherPropertyName = "Bar."
			};

			var expected = "{\"upperPropertyName\":\"Foo.\",\"arbitraryOther\":\"Bar.\"}";

			var resolver = new CombinedResolverStrategy(
				new JsonResolverStrategy(),
				new DataContractResolverStrategy(),
				new XmlResolverStrategy(),
				new ConventionResolverStrategy(ConventionResolverStrategy.WordCasing.PascalCase),
				new ConventionResolverStrategy(ConventionResolverStrategy.WordCasing.CamelCase),
				new ConventionResolverStrategy(ConventionResolverStrategy.WordCasing.Lowercase, "-"),
				new ConventionResolverStrategy(ConventionResolverStrategy.WordCasing.Uppercase, "_"));

			var actual = new JsonWriter(new DataWriterSettings(resolver)).Write(input);

			Assert.Equal(expected, actual, false);
		}
 /// <summary>
 /// Renders a simple data binding call to a named template.
 /// </summary>
 /// <param name="writer"></param>
 private void RenderSimpleControlReference(JsonWriter writer)
 {
     writer.TextWriter.Write(
         JbstControlReference.SimpleReferenceFormat,
         this.NameExpr,
         this.DataExpr,
         this.IndexExpr,
         this.CountExpr);
 }
Пример #31
0
		public void Write_RecognizesMultipleDateTimeFiltersAjaxFirst_SerializesMSAjaxDates()
		{
			var input = new object[]
				{
					"Normal string before",
					new DateTime(2008, 2, 29, 23, 59, 59, 999, DateTimeKind.Utc),
					new DateTime(2010, 7, 5, 10, 51, 17, 768, DateTimeKind.Utc),
					"Normal string after"
				};
			var expected = @"[""Normal string before"",""/Date(1204329599999)/"",""/Date(1278327077768)/"",""Normal string after""]";

			var writer = new JsonWriter(
				new DataWriterSettings(new MSAjaxDateFilter(), new Iso8601DateFilter()));

			var actual = writer.Write(input);

			Assert.Equal(expected, actual);
		}
Пример #32
0
 public override string ToString()
 {
     dynamic[] lines = new dynamic[intlines.Count];
     int i = 0;
     foreach (var lf in intlines)
     {
         lines[i] = new {
             id = lf.id, line = new int[]
             {
                 lf.line.p.X, lf.line.p.Y,
                 lf.line.q.X, lf.line.q.Y
             }
         };
         i++;
     }
     var settings = new JsonFx.Serialization.DataWriterSettings();
     settings.PrettyPrint = true;
     var writer = new JsonWriter(settings);
     var output = new { imagefile = imagefile, intlines = lines };
     return writer.Write(output);
 }
Пример #33
0
		public void QueryArrayItems_OrderByThenByLast_ReturnsMultipleObjects()
		{
			// use convention over configuration on the way out
			var reader = new JsonReader(new DataReaderSettings(new ConventionResolverStrategy(ConventionResolverStrategy.WordCasing.CamelCase)));
			// use POCO on the way out
			var writer = new JsonWriter(new DataWriterSettings() { PrettyPrint=true });

			string input =
@"[
	{ ""personId"": 1, ""firstName"": ""Sally"", ""lastName"": ""Smith"" },
	{ ""personId"": 2, ""firstName"": ""Bob"", ""lastName"": ""Smith"" },
	{ ""personId"": 3, ""firstName"": ""John"", ""lastName"": ""Jones"" },
	{ ""personId"": 4, ""firstName"": ""Suzie"", ""lastName"": ""Jones"" }
]";

			var people = reader.Query<Person>(input);
			var query =
				from person in people.ArrayItems()
				orderby person.LastName, person.FirstName
				select person.PersonID;

			Assert.Equal(1, query.Last());

			const string expected =
@"[
	3,
	4,
	2,
	1
]";

			string actual = writer.Write(query);

			Assert.Equal(expected, actual);
		}
Пример #34
0
		public void QueryDescendants_WhereOrderByLast_ReturnsMultipleObjects()
		{
			// respect DataContracts on the way in
			var reader = new JsonReader(new DataReaderSettings(new DataContractResolverStrategy()));
			// use convention over configuration on the way out
			var writer = new JsonWriter(new DataWriterSettings(new ConventionResolverStrategy(ConventionResolverStrategy.WordCasing.Lowercase, "-")));

			string input =
@"[
	{ ""id"": 1, ""first"": ""Foo"", ""last"": ""Bar"" },
	{ ""id"": 2, ""first"": ""etc."", ""last"": ""et al."" },
	{ ""id"": 3, ""first"": ""Blah"", ""last"": ""Yada"" }
]";

			var people = reader.Query<Person>(input);
			var query =
				from person in people.Descendants()
				where person.PersonID == 1 || person.FirstName == "Blah"
				orderby person.PersonID
				select person;

			Assert.Equal("Yada", query.Last().LastName);

			const string expected = @"[{""person-id"":1,""first-name"":""Foo"",""last-name"":""Bar""},{""person-id"":3,""first-name"":""Blah"",""last-name"":""Yada""}]";

			string actual = writer.Write(query);

			Assert.Equal(expected, actual);
		}
Пример #35
0
        // example: https://github.com/numenta/grok-js-ua/blob/master/hello-grok/apiProxy.js
        public void ProcessRequest(HttpContext context)
        {
            dynamic proxyData;
            using (var inputReader = new StreamReader(context.Request.InputStream, context.Request.ContentEncoding))
            {
                //proxyData = Json.Decode(inputReader.ReadToEnd());
                var reader = new JsonFx.Json.JsonReader();
                proxyData = reader.Read(inputReader);
                //var serializer = new DataContractJsonSerializer(typeof(ProxyBody));
                //var proxyData = (ProxyBody)serializer.ReadObject(context.Request.InputStream);
            }

            string endpoint = proxyData.proxy.endpoint;
            bool hasData = ((System.Collections.Generic.IDictionary<String, Object>)proxyData.proxy).ContainsKey("data");

            // write the request data
            if (hasData && proxyData.proxy.method=="GET")
            {
                var ub = new UriBuilder(endpoint);
                var queryString = HttpUtility.ParseQueryString(ub.Query);
                foreach (var dataItem in ((System.Collections.Generic.IDictionary<String, Object>)proxyData.proxy.data))
                {
                    if (dataItem.Value == null) continue;
                    queryString.Add(dataItem.Key, dataItem.Value.ToString());
                }
                ub.Query = queryString.ToString();
                endpoint = ub.Uri.AbsoluteUri;
            }

            var request = WebRequest.CreateHttp(endpoint);
            request.Method = proxyData.proxy.method;

            request.Headers.Add(
                HttpRequestHeader.ContentEncoding,
                "UTF8");
            request.Headers.Add(
                HttpRequestHeader.Authorization,
                GenerateBasicAuthenticationValue(username: proxyData.apiKey, password: string.Empty));

            try
            {
                // write the request data
                if (hasData && proxyData.proxy.method != "GET")
                {
                    using (var dataWriter = new StreamWriter(request.GetRequestStream(), new UTF8Encoding(false)))
                    {
                        var writer = new JsonFx.Json.JsonWriter();
                        writer.Write(proxyData.proxy.data, dataWriter);
                    }
                }

                // read the response

                var response = (HttpWebResponse) request.GetResponse();
                context.Response.StatusCode = (int)HttpStatusCode.OK;
                context.Response.Headers.Add("Content-Encoding", response.ContentEncoding);

                byte[] buffer = new byte[ushort.MaxValue];
                using (var responseStream = response.GetResponseStream())
                {
                    int r;
                    while((r = responseStream.Read(buffer, 0, buffer.Length)) != 0)
                    {
                        context.Response.OutputStream.Write(buffer, 0, r);
                    }
                }

                return;
            }
            catch (WebException ex)
            {
                if (ex.Status != WebExceptionStatus.ProtocolError)
                {
                    context.Response.StatusCode = (int)HttpStatusCode.ServiceUnavailable;
                    return;
                }

                var httpResponse = (HttpWebResponse)ex.Response;
                context.Response.StatusCode = (int)httpResponse.StatusCode;
                return;
            }
        }
        /// <summary>
        /// Renders a data binding call to a named template with a nested inline anonymous placeholder template.
        /// </summary>
        /// <param name="writer"></param>
        private void RenderWrapperControlReference(JsonWriter writer)
        {
            writer.TextWriter.Write(
                JbstControlReference.ControlWrapperStartFormat,
                this.NameExpr,
                this.DataExpr,
                this.IndexExpr,
                this.CountExpr);

            Dictionary<string, object> args = new Dictionary<string, object>();

            if (this.ChildControls.HasAnonymousInlineTemplate)
            {
                // anonymous inline template
                args[JbstInline.InlinePrefix] = new EnumerableAdapter(this);
            }

            if (this.ChildControls.InlineTemplatesSpecified)
            {
                // named inline templates
                foreach (JbstInline inline in this.ChildControls.InlineTemplates)
                {
                    args[JbstInline.InlinePrefix+inline.NameExpr] = new EnumerableAdapter(inline);
                }
            }

            writer.Write(args);

            writer.TextWriter.Write(JbstControlReference.ControlWrapperEnd);
        }
Пример #37
0
		public void Write_ObjectContainingEnum_SerializesObject()
		{
			var input = new Foo { Baz = Bar.First };
			var expected = "{\"Baz\":\"First\"}";

			var actual = new JsonWriter().Write(input);

			Assert.Equal(expected, actual);
		}
Пример #38
0
 static void ByteArraySerializer(JsonFx.Json.JsonWriter writer, byte[] value)
 {
     writer.Write(new EJSON.EJSONUInt8Array(value));
 }
        /// <summary>
        /// Renders a data binding call to an inline anonymous template.
        /// </summary>
        /// <param name="writer"></param>
        private void RenderAnonymousTemplate(JsonWriter writer)
        {
            writer.TextWriter.Write(JbstControlReference.InlineTemplateStart);

            writer.Write(new EnumerableAdapter(this));

            writer.TextWriter.Write(
                JbstControlReference.InlineTemplateEndFormat,
                this.DataExpr,
                this.IndexExpr,
                this.CountExpr);
        }
Пример #40
0
        /// <summary>
        /// A helper method for serializing an object to JSON
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        public static string Serialize(object value)
        {
            StringBuilder output = new StringBuilder();

            using (JsonWriter writer = new JsonWriter(output))
            {
                writer.Write(value);
            }

            return output.ToString();
        }
Пример #41
0
        public void Export(bool run)
        {
            try
            {
                string sceneName = SceneManager.GetActiveScene().name;

                exportationOptions.DefaultFolder = EditorUtility.SaveFolderPanel("Please select a folder", exportationOptions.DefaultFolder, "");

                if (string.IsNullOrEmpty(exportationOptions.DefaultFolder))
                {
                    return;
                }

                Stopwatch watch = new Stopwatch();

                watch.Start();

                var jsWriter = new JsonWriter();
                File.WriteAllText("Unity3D2Babylon.ini", jsWriter.Write(exportationOptions));
                logs.Clear();

                ReportProgress(0);

                var sceneBuilder = new SceneBuilder(exportationOptions.DefaultFolder, sceneName, exportationOptions);

                sceneBuilder.ConvertFromUnity();

                ReportProgress(1, "Generating output file");
                var outputFile = sceneBuilder.WriteToBabylonFile();

                watch.Stop();
                ReportProgress(1, string.Format("Exportation done in {0:0.00}s", watch.Elapsed.TotalSeconds));
                EditorUtility.ClearProgressBar();

                sceneBuilder.GenerateStatus(logs);

                ShowMessage("Exportation done");

                if (run)
                {
                    WebServer.SceneFolder = Path.GetDirectoryName(outputFile);
                    WebServer.SceneFilename = Path.GetFileName(outputFile);

                    Process.Start("http://localhost:" + WebServer.Port);
                }
            }
            catch (Exception ex)
            {
                EditorUtility.ClearProgressBar();
                ShowMessage("A problem occurred: " + ex.Message + ex.StackTrace, "Error");
            }
        }