Giter Site home page Giter Site logo

netjson's People

Contributors

hhblaze avatar jefclaes avatar mjduffey avatar rpgmaker avatar wmjordan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

netjson's Issues

Deserializing an enum with a string causes hang

Code below will hang on call to Deserialize

public class ClassWithEnum
{
   public enum SomeEnum
   {
      One,
      Two,
      Three
   }

   public SomeEnum Value { get; set; }        
}

var json = "{\"Value\":\"Two\"}";
var test = NetJSON.Deserialize<ClassWithEnum>(json);

Deserialization fails

I am going to deserialize json files using the following program:

using System;
using System.IO;

namespace NetTest1
{
    public class Program
    {
        public static void Main(string[] args)
        {
            var a = NetJSON.NetJSON.Deserialize<Solution.SolutionData>(File.ReadAllText(".solution.json"));
            var b = NetJSON.NetJSON.Deserialize<Project.ProjectData>(File.ReadAllText(".project1.json"));
            var c = NetJSON.NetJSON.Deserialize<Project.ProjectData>(File.ReadAllText(".project2.json"));
            var d = NetJSON.NetJSON.Deserialize<Project.ProjectData>(File.ReadAllText(".project3.json"));
        }
    }

    public class Solution
    {
        public class SolutionData
        {
            public FolderData folders { get; set; }
            public PackageData[] packages { get; set; }
        }

        public class PackageData
        {
            public string name { get; set; }
            public string version { get; set; }
            public string[] references { get; set; }
        }

        public class FolderData
        {
            public string output { get; set; }
            public string sources { get; set; }
            public string packages { get; set; }
        }
    }

    public class Project
    {
        public class ProjectData
        {
            public MetadataData metadata { get; set; }
            public String[] references { get; set; }
            public String[] dependencies { get; set; }
            public PackageData[] packages { get; set; }
        }

        public class MetadataData
        {
            public String type { get; set; }
        }

        public class PackageData
        {
            public String name { get; set; }
            public String version { get; set; }
        }
    }
}

The object b is invalid. It should contains only two references.
When deserializng to object d an exceptions is thrown.

System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.

   at ProjectDataClass.CreateClassOrDictProjectData(Char* , Int32& )
   at ProjectDataClass.ReadProjectData(String )
   at ProjectDataClass.Deserialize(String )
   at NetJSON.NetJSON.Deserialize[T](String json)
   at NetTest1.Program.Main(String[] args) in c:\Users\Adrian\Documents\SharpDevelop Projects\NetTest1\NetTest1\Program.cs:line 13

I suppose the problem is in encoding.
The files you can find here: https://github.com/amacal/Quality.Json/blob/issue/data.zip?raw=true

Future plans

Why not just contibute to Json.NET?
Json.NET is used widely, even in ASP.NET MVC4, it's unpossible to switch it to NetJson BUT it's easy to update Json.NET binary assembly with updated version.

Add support for fields

Sometimes I would like to serialize the class with public properties instead of auto-properties. Currently it seems to be not supported.

System.InvalidProgramException when using SByte

    [TestFixture]
    public sealed class NetJsonTestFixture
    {
        public class Baz
        {
            private SByte _x = 0;
            public SByte X
            {
                get { return _x; }
                set { _x = value; }
            }
        }

        [Test]
        public void TestDefaultSByte()
        {
            NetJSON.NetJSON.Serialize(new Baz());
        }
    }

Throws System.InvalidProgramException : Common Language Runtime detected an invalid program.

The execution hangs on some JSON

I wanted to deserialize the following json

{"menu": {
  "id": "file",
  "value": "File",
  "popup": {
    "menuitem": [
      {"value": "New", "onclick": "CreateNewDoc()"},
      {"value": "Open", "onclick": "OpenDoc()"},
      {"value": "Close", "onclick": "CloseDoc()"}
    ]
  }
}}

into the following class

    public class MenuContainer
    {
        public Menu menu { get; set; }

        public class Menu
        {
            public string id { get; set; }
            public string value { get; set; }

            public Popup popup { get; set; }
        }

        public class Popup
        {
            public MenuItem[] menuitem { get; set; }
        }

        public class MenuItem
        {
            public string value { get; set; }
            public string onclick { get; set; }
        }
    }

but it hangs and one CPU core is busy.

Control over assembly generated types are created in

Currently: each type generates a deserializer/serializer type into a different assembly.

Feature Request: allow the specification of an assembly name and set of types to generate into it ahead-of-time. Something like: void NetJSON.NetJSON.GenerateTypesInto(string assemblyName, type[] types); that call be called during static initialization.

Why: This lets the author of the types being serialized add InternalsVisibleTo directives to their assembly's properties.cs so the generated serialization code can access those types without them needing to be marked as public.

Performance tests

I decide to compare your Long2Str perfomance to .NET built-in Int64.ToString.
I wrote such helper class:

    public class BenchMarker
    {
        private Dictionary<String,List<TimeSpan>>  data = new Dictionary<string, List<TimeSpan>>();

        public void Record(String name, TimeSpan timeSpan)
        {
            if(!data.ContainsKey(name)) data.Add(name,new List<TimeSpan>());
            data[name].Add(timeSpan);
            Console.WriteLine("{0} {1}", name, timeSpan);
        }

        public void Print()
        {
            Console.WriteLine("{0,-18} {1,18} {2,18} {3,18}", "name", "min", "max", "avg");
            foreach (var pair in data)
            {
                Console.WriteLine("{0,-18} {1,18} {2,18} {3,18}", pair.Key, 
                    pair.Value.Min(), pair.Value.Max(), 
                    TimeSpan.FromTicks((long) pair.Value.Average(span => span.Ticks)));
            }
        }
    }

I wrote such benchmark:

 static void BenchL2A()
        {
            var bn = new BenchMarker();
            const int count = 2000000;
            var tw = new Stopwatch();

            var sb = new StringBuilder(50 * 1024 * 1024);
            var nf = NumberFormatInfo.InvariantInfo;
            var culture = CultureInfo.InvariantCulture;
            //warmup
            for (var i = 0; i < 1000000; ++i)
            {
                sb.Clear();
                sb.Append(NetJSON.NetJSON.LongToStr(long.MaxValue - 10));
                sb.Append(NetJSON.NetJSON.LongToStr(long.MinValue + 10));
                sb.Append((long.MaxValue - 10).ToString(culture));
                sb.Append((long.MinValue + 10).ToString(culture));
                sb.Append(NetJSON.IntUtility.ltoa(long.MaxValue - 10));
                sb.Append(NetJSON.IntUtility.ltoa(long.MinValue + 10));
                sb.Append((long.MaxValue - 10).ToString(nf));
                sb.Append((long.MinValue + 10).ToString(nf));
            }

            for (var j = 0; j < 10; ++j)
            {
                sb.Clear();
                tw.Restart();
                for (int i = 0; i < count; ++i)
                {
                    sb.Append(NetJSON.NetJSON.LongToStr(long.MaxValue - 10));
                    sb.Append(NetJSON.NetJSON.LongToStr(long.MinValue + 10));
                }
                tw.Stop();
                bn.Record("LongToStr", tw.Elapsed);

                sb.Clear();
                tw.Restart();
                for (int i = 0; i < count; ++i)
                {
                    sb.Append((long.MaxValue - 10).ToString(culture));
                    sb.Append((long.MinValue + 10).ToString(culture));

                }
                tw.Stop();
                bn.Record("InvariantCulture", tw.Elapsed);

                sb.Clear();
                tw.Restart();
                for (int i = 0; i < count; ++i)
                {
                    sb.Append(NetJSON.IntUtility.ltoa(long.MaxValue - 10));
                    sb.Append(NetJSON.IntUtility.ltoa(long.MinValue + 10));
                }
                tw.Stop();
                bn.Record("IntUtility.ltoa", tw.Elapsed);                

                sb.Clear();
                tw.Restart();
                for (int i = 0; i < count; ++i)
                {
                    sb.Append((long.MaxValue - 10).ToString(nf));
                    sb.Append((long.MinValue + 10).ToString(nf));
                }
                tw.Stop();
                bn.Record("InvariantInfo", tw.Elapsed);

                Console.WriteLine("------------------------------------");
            }
            bn.Print();

        }

I got such results:

name                              min                max                avg
LongToStr            00:00:01.2643632   00:00:01.5122666   00:00:01.3461801
InvariantCulture     00:00:00.9892972   00:00:01.1032854   00:00:01.0317748
IntUtility.ltoa      00:00:01.4675387   00:00:01.6341287   00:00:01.5300646
InvariantInfo        00:00:01.0060533   00:00:01.1215123   00:00:01.0465105

Conclusion: .

  • NET built-n Int64.ToString outperforms NetJson "optimized" implementations.

Add support for structs

Sometimes I would like to serialize the struct like the class. Currently it seems to be not supported.

TextWriter instead of StringBuilder

As I seen in NetJSON code you are generating serialization code against StringBuilder. I believe TextWriter is better since this allows streaming. In case someone need exactly StringBuilder System.IO.StringWriter is perfect StringBuilder->TextWriter adapter.

IJsonWriter / IJsonReader interfaces

I propose to move whole formatting/parsing logic to separate API. Something like:

public interface IJsonWriter {
    void WriteValue(byte value);
    void WriteValue(sbyte value);
    // etc
    void WriteValue(long value);
    void WriteValue(ulong value);
    void WriteValue(DateTime value);
    void WriteValue(TimeStamp value);
    void WriteValue(byte[] value);
    //etc
    void WriteValue(String value);
    void WriteNull();
    void WriteStartArray(int itemsCount);
    void WriteEndArray(int itemsCount);
    void WriteSeparator(); // ',' for arrays and maps
    void WriteStartMap(int itemsCount);
    void WriteEndMap(int itemsCount);
    void WriteMapKey(String key);
}

this re-factoring allows custom implementation to support MsgPack|CBOR|BSON|UBSON|Smile|RISON etc...

Anonymous types not supported, Non-public classes not supported too

Anonymous types are not supported:

var obj = new {Foo="bar"}; // You cant's serialize this to JSON

Take look @ Dapper.NET IL generation - it can handle both cases (anonymous types and non-public classes)

PS. Talking about polymorphic class instead of StringBuilder - in my tests I see approx 30% performance loss (still near protobuff.net)

Doesn't deserialise properly for some cases where there is a member omitted from the .NET class definition

Firstly, the performance of your deserialiser is highly impressive! I'd love to switch from Json.NET. However, NetJSON can't properly deal with my use-case. Here is the simplest repro I could make:

public class MyObj
{
    public string Val { get; set; }
}
public class Test
{
    public Dictionary<int, MyObj> Dictionary { get; set; }
}
var txt = "{\"Dictionary\":{1:{\"Val\":\"A\",\"Fluff\":{}},2:{\"Val\":\"B\",\"Fluff\":{}}}}";
var obj = NetJSON.NetJSON.Deserialize<Test>(txt);

Expected result: dictionary has 2 entries. Obtained result: 1 entry. Json object Fluff is omitted from the class definition and this causes the deserialisation to break. Is this fixable with your (as I understand it) concurrent approach to deserialisation?

Add 3.5 .NET Target

Is it possible to add a 3.5 .NET target?

I want to test this with Unity, but it can only use .net dll's version 3.5 or lower.

Decimal's not deserializing

public class ClassWithDecimal
{
    public decimal Value { get; set; }
}

var json =  "{\"Value\":5}";
var test = NetJSON.Deserialize<ClassWithDecimal>(json);

This will throw a System.InvalidProgramException on the call to Deserialize

stack trace

   at ClassWithDecimalClass.ExtractDecimal(Char* , Int32& )
   at ClassWithDecimalClass.SetClassWithDecimal(Char* , Int32& , ClassWithDecimal , String )
   at ClassWithDecimalClass.CreateClassOrDictClassWithDecimal(Char* , Int32& )
   at ClassWithDecimalClass.ReadClassWithDecimal(String )
   at ClassWithDecimalClass.Deserialize(String )
   at NetJSON.NetJSON.Deserialize[T](String json)

Deserialization hangs

When I deserialize the following JSON:

{"actions":[{"acted_at":"2014-02-06","committees":["HSIF"],"references":[],"status":"REFERRED","text":"Referred to the Committee on Energy and Commerce, and in addition to the Committees on Ways and Means, and the Judiciary, for a period to be subsequently determined by the Speaker, in each case for consideration of such provisions as fall within the jurisdiction of the committee concerned.","type":"referral"},{"acted_at":"2014-02-06","committees":["HSIF"],"references":[],"text":"Referred to House Energy and Commerce","type":"referral"},{"acted_at":"2014-02-06","committees":["HSWM"],"references":[],"text":"Referred to House Ways and Means","type":"referral"},{"acted_at":"2014-02-06","committees":["HSJU"],"references":[],"text":"Referred to House Judiciary","type":"referral"},{"acted_at":"2014-02-07","references":[],"text":"Referred to the Subcommittee on Health.","type":"referral"},{"acted_at":"2014-02-25","references":[{"reference":"CR H1885-1886"}],"text":"Sponsor introductory remarks on measure.","type":"action"},{"acted_at":"2014-03-12T19:24:00-04:00","committees":["HSRU"],"references":[],"text":"Rules Committee Resolution H. Res. 515 Reported to House. The resolution provides for one hour of debate on H.R. 3189. The rule makes in order as original text for the purpose of amendment an amendment in the nature of a substitute recommended by the Committee on Natural Resources now printed in the bill and provides that it shall be considered as read. The rule provides for a closed rule for H.R. 4015 with one hour of debate on the bill.","type":"action","bill_ids":["hres515-113","hr3189-113"]},{"acted_at":"2014-03-13T14:25:00-04:00","references":[],"text":"Rule H. Res. 515 passed House.","type":"action","bill_ids":["hres515-113"]},{"acted_at":"2014-03-14T09:16:00-04:00","references":[{"reference":"CR H2439-2470","type":"consideration"}],"text":"Considered under the provisions of rule H. Res. 515.","type":"action","bill_ids":["hres515-113"]},{"acted_at":"2014-03-14T09:16:00-04:00","committees":["HSII"],"references":[],"text":"The resolution provides for one hour of debate on H.R. 3189. The rule makes in order as original text for the purpose of amendment an amendment in the nature of a substitute recommended by the Committee on Natural Resources now printed in the bill and provides that it shall be considered as read. The rule provides for a closed rule for H.R. 4015 with one hour of debate on the bill.","type":"action","bill_ids":["hr3189-113"]},{"acted_at":"2014-03-14T09:17:00-04:00","references":[],"text":"DEBATE - The House proceeded with one hour of debate on H.R. 4015.","type":"action"},{"acted_at":"2014-03-14T10:32:00-04:00","references":[],"text":"DEBATE - The House continued with debate on H.R. 4015.","type":"action"},{"acted_at":"2014-03-14T10:36:00-04:00","references":[{"reference":"CR H2468","type":"consideration"}],"text":"The previous question was ordered pursuant to the rule.","type":"action"},{"acted_at":"2014-03-14T10:36:00-04:00","committees":["HSWM"],"references":[{"reference":"CR H2468-1470","type":"consideration"},{"reference":"CR H2468","type":"text"}],"text":"Mr. Loebsack moved to recommit with instructions to Ways and Means.","type":"action"},{"acted_at":"2014-03-14T10:36:00-04:00","references":[],"text":"DEBATE - The House proceeded with 10 minutes of debate on the Loebsack motion to recommit with instructions, pending the reservation of a point of order. The instructions contained in the motion seek to require the bill to be reported back to the House with an amendment to add a section to the bill titled Prohibition on Medicare cuts or Vouchers. Subsequently, the reservation was withdrawn.","type":"action"},{"acted_at":"2014-03-14T10:43:00-04:00","references":[{"reference":"CR H2469","type":"consideration"}],"text":"The previous question on the motion to recommit with instructions was ordered without objection.","type":"action"},{"acted_at":"2014-03-14T11:08:00-04:00","references":[],"text":"On motion to recommit with instructions Failed by the Yeas and Nays: 191 - 226 (Roll no. 134).","type":"action"},{"acted_at":"2014-03-14T11:16:00-04:00","references":[{"reference":"CR H2439-2457","type":"text"}],"status":"PASS_OVER:HOUSE","text":"On passage Passed by the Yeas and Nays: 238 - 181 (Roll no. 135).","type":"vote","result":"pass","roll":"135","vote_type":"vote","how":"roll","where":"h"},{"acted_at":"2014-03-14T11:16:00-04:00","references":[],"text":"Motion to reconsider laid on the table Agreed to without objection.","type":"action"},{"acted_at":"2014-03-20","references":[],"text":"Referred to the Subcommittee on the Constitution and Civil Justice.","type":"referral"},{"acted_at":"2014-03-24","references":[],"text":"Received in the Senate.","type":"action"}],"amendments":[{"amendment_id":"hamdt598-113","amendment_type":"hamdt","chamber":"h","number":"598"}],"committees":[{"activity":["referral"],"committee":"House Energy and Commerce","committee_id":"HSIF"},{"activity":["referral"],"committee":"House Energy and Commerce","committee_id":"HSIF","subcommittee":"Subcommittee on Health","subcommittee_id":"14"},{"activity":["referral"],"committee":"House Ways and Means","committee_id":"HSWM"},{"activity":["referral"],"committee":"House Judiciary","committee_id":"HSJU"},{"activity":["referral"],"committee":"House Judiciary","committee_id":"HSJU","subcommittee":"Subcommittee on Constitution and Civil Justice","subcommittee_id":"10"}],"cosponsors":[{"district":"2","name":"Amodei, Mark E.","sponsored_at":"2014-03-10","state":"NV","thomas_id":"02090","title":"Rep"},{"district":"6","name":"Barr, Andy","sponsored_at":"2014-03-05","state":"KY","thomas_id":"02131","title":"Rep"},{"district":"12","name":"Barrow, John","sponsored_at":"2014-03-11","state":"GA","thomas_id":"01780","title":"Rep"},{"district":"1","name":"Benishek, Dan","sponsored_at":"2014-02-28","state":"MI","thomas_id":"02027","title":"Rep"},{"district":"7","name":"Bera, Ami","sponsored_at":"2014-02-28","state":"CA","thomas_id":"02102","title":"Rep"},{"district":"12","name":"Bilirakis, Gus M.","sponsored_at":"2014-03-10","state":"FL","thomas_id":"01838","title":"Rep"},{"district":"1","name":"Bishop, Rob","sponsored_at":"2014-03-06","state":"UT","thomas_id":"01753","title":"Rep"},{"district":"2","name":"Bishop, Sanford D., Jr.","sponsored_at":"2014-03-05","state":"GA","thomas_id":"00091","title":"Rep"},{"district":"6","name":"Black, Diane","sponsored_at":"2014-03-10","state":"TN","thomas_id":"02063","title":"Rep"},{"district":"7","name":"Blackburn, Marsha","sponsored_at":"2014-03-05","state":"TN","thomas_id":"01748","title":"Rep"},{"district":"3","name":"Blumenauer, Earl","sponsored_at":"2014-02-26","state":"OR","thomas_id":"00099","title":"Rep"},{"name":"Bordallo, Madeleine Z.","sponsored_at":"2014-02-26","state":"GU","thomas_id":"01723","title":"Rep"},{"district":"3","name":"Boustany, Charles W., Jr.","sponsored_at":"2014-02-06","state":"LA","thomas_id":"01787","title":"Rep"},{"district":"8","name":"Brady, Kevin","sponsored_at":"2014-02-06","state":"TX","thomas_id":"01468","title":"Rep"},{"district":"16","name":"Buchanan, Vern","sponsored_at":"2014-03-05","state":"FL","thomas_id":"01840","title":"Rep"},{"district":"8","name":"Bucshon, Larry","sponsored_at":"2014-02-26","state":"IN","thomas_id":"02018","title":"Rep"},{"district":"4","name":"Camp, Dave","sponsored_at":"2014-02-06","state":"MI","thomas_id":"00166","title":"Rep"},{"district":"2","name":"Capito, Shelley Moore","sponsored_at":"2014-03-10","state":"WV","thomas_id":"01676","title":"Rep"},{"district":"1","name":"Chabot, Steve","sponsored_at":"2014-03-11","state":"OH","thomas_id":"00186","title":"Rep"},{"district":"6","name":"Coffman, Mike","sponsored_at":"2014-03-06","state":"CO","thomas_id":"01912","title":"Rep"},{"district":"9","name":"Cohen, Steve","sponsored_at":"2014-03-06","state":"TN","thomas_id":"01878","title":"Rep"},{"name":"Cramer, Kevin","sponsored_at":"2014-03-10","state":"ND","thomas_id":"02144","title":"Rep"},{"district":"1","name":"Crawford, Eric A. \"Rick\"","sponsored_at":"2014-03-11","state":"AR","thomas_id":"01989","title":"Rep"},{"district":"28","name":"Cuellar, Henry","sponsored_at":"2014-02-28","state":"TX","thomas_id":"01807","title":"Rep"},{"district":"7","name":"Davis, Danny K.","sponsored_at":"2014-03-06","state":"IL","thomas_id":"01477","title":"Rep"},{"district":"4","name":"DeFazio, Peter A.","sponsored_at":"2014-03-10","state":"OR","thomas_id":"00279","title":"Rep"},{"district":"1","name":"DeGette, Diana","sponsored_at":"2014-03-05","state":"CO","thomas_id":"01479","title":"Rep"},{"district":"15","name":"Dent, Charles W.","sponsored_at":"2014-03-05","state":"PA","thomas_id":"01799","title":"Rep"},{"district":"12","name":"Dingell, John D.","sponsored_at":"2014-03-05","state":"MI","thomas_id":"00299","title":"Rep"},{"district":"4","name":"Edwards, Donna F.","sponsored_at":"2014-03-05","state":"MD","thomas_id":"01894","title":"Rep"},{"district":"2","name":"Ellmers, Renee L.","sponsored_at":"2014-03-10","state":"NC","thomas_id":"02036","title":"Rep"},{"district":"18","name":"Eshoo, Anna G.","sponsored_at":"2014-03-06","state":"CA","thomas_id":"00355","title":"Rep"},{"district":"20","name":"Farr, Sam","sponsored_at":"2014-02-26","state":"CA","thomas_id":"00368","title":"Rep"},{"district":"8","name":"Fitzpatrick, Michael G.","sponsored_at":"2014-02-26","state":"PA","thomas_id":"01797","title":"Rep"},{"district":"17","name":"Flores, Bill","sponsored_at":"2014-02-26","state":"TX","thomas_id":"02065","title":"Rep"},{"district":"1","name":"Fortenberry, Jeff","sponsored_at":"2014-03-11","state":"NE","thomas_id":"01793","title":"Rep"},{"district":"7","name":"Gibbs, Bob","sponsored_at":"2014-03-06","state":"OH","thomas_id":"02049","title":"Rep"},{"district":"11","name":"Gingrey, Phil","sponsored_at":"2014-03-06","state":"GA","thomas_id":"01720","title":"Rep"},{"district":"6","name":"Graves, Sam","sponsored_at":"2014-03-10","state":"MO","thomas_id":"01656","title":"Rep"},{"district":"29","name":"Green, Gene","sponsored_at":"2014-02-26","state":"TX","thomas_id":"00462","title":"Rep"},{"district":"2","name":"Griffin, Tim","sponsored_at":"2014-03-10","state":"AR","thomas_id":"01990","title":"Rep"},{"district":"3","name":"Grijalva, Raul M.","sponsored_at":"2014-03-11","state":"AZ","thomas_id":"01708","title":"Rep"},{"district":"11","name":"Grimm, Michael G.","sponsored_at":"2014-03-10","state":"NY","thomas_id":"02041","title":"Rep"},{"district":"2","name":"Guthrie, Brett","sponsored_at":"2014-03-05","state":"KY","thomas_id":"01922","title":"Rep"},{"district":"4","name":"Hall, Ralph M.","sponsored_at":"2014-02-28","state":"TX","thomas_id":"00484","title":"Rep"},{"district":"22","name":"Hanna, Richard L.","sponsored_at":"2014-03-10","state":"NY","thomas_id":"02044","title":"Rep"},{"district":"3","name":"Harper, Gregg","sponsored_at":"2014-03-06","state":"MS","thomas_id":"01933","title":"Rep"},{"district":"10","name":"Heck, Denny","sponsored_at":"2014-03-05","state":"WA","thomas_id":"02170","title":"Rep"},{"district":"3","name":"Heck, Joseph J.","sponsored_at":"2014-03-05","state":"NV","thomas_id":"02040","title":"Rep"},{"district":"17","name":"Honda, Michael M.","sponsored_at":"2014-03-06","state":"CA","thomas_id":"01634","title":"Rep"},{"district":"4","name":"Horsford, Steven A.","sponsored_at":"2014-03-06","state":"NV","thomas_id":"02147","title":"Rep"},{"district":"8","name":"Hudson, Richard","sponsored_at":"2014-03-05","state":"NC","thomas_id":"02140","title":"Rep"},{"district":"2","name":"Huffman, Jared","sponsored_at":"2014-03-05","state":"CA","thomas_id":"02101","title":"Rep"},{"district":"3","name":"Israel, Steve","sponsored_at":"2014-03-11","state":"NY","thomas_id":"01663","title":"Rep"},{"district":"6","name":"Johnson, Bill","sponsored_at":"2014-03-05","state":"OH","thomas_id":"02046","title":"Rep"},{"district":"3","name":"Johnson, Sam","sponsored_at":"2014-03-11","state":"TX","thomas_id":"00603","title":"Rep"},{"district":"3","name":"Kelly, Mike","sponsored_at":"2014-03-12","state":"PA","thomas_id":"02051","title":"Rep"},{"district":"3","name":"Kind, Ron","sponsored_at":"2014-03-06","state":"WI","thomas_id":"01498","title":"Rep"},{"district":"7","name":"Lance, Leonard","sponsored_at":"2014-03-10","state":"NJ","thomas_id":"01936","title":"Rep"},{"district":"3","name":"Latham, Tom","sponsored_at":"2014-03-06","state":"IA","thomas_id":"00666","title":"Rep"},{"district":"5","name":"Latta, Robert E.","sponsored_at":"2014-03-10","state":"OH","thomas_id":"01885","title":"Rep"},{"district":"9","name":"Levin, Sander M.","sponsored_at":"2014-02-06","state":"MI","thomas_id":"00683","title":"Rep"},{"district":"5","name":"Lewis, John","sponsored_at":"2014-03-10","state":"GA","thomas_id":"00688","title":"Rep"},{"district":"2","name":"LoBiondo, Frank A.","sponsored_at":"2014-03-12","state":"NJ","thomas_id":"00699","title":"Rep"},{"district":"7","name":"Long, Billy","sponsored_at":"2014-03-05","state":"MO","thomas_id":"02033","title":"Rep"},{"district":"24","name":"Maffei, Daniel B.","sponsored_at":"2014-03-06","state":"NY","thomas_id":"01943","title":"Rep"},{"district":"18","name":"Maloney, Sean Patrick","sponsored_at":"2014-03-10","state":"NY","thomas_id":"02150","title":"Rep"},{"district":"4","name":"Matheson, Jim","sponsored_at":"2014-03-05","state":"UT","thomas_id":"01671","title":"Rep"},{"district":"6","name":"Matsui, Doris O.","sponsored_at":"2014-03-05","state":"CA","thomas_id":"01814","title":"Rep"},{"district":"10","name":"McCaul, Michael T.","sponsored_at":"2014-03-12","state":"TX","thomas_id":"01804","title":"Rep"},{"district":"7","name":"McDermott, Jim","sponsored_at":"2014-02-06","state":"WA","thomas_id":"00766","title":"Rep"},{"district":"10","name":"McHenry, Patrick T.","sponsored_at":"2014-03-11","state":"NC","thomas_id":"01792","title":"Rep"},{"district":"1","name":"McKinley, David B.","sponsored_at":"2014-02-18","state":"WV","thomas_id":"02074","title":"Rep"},{"district":"10","name":"Miller, Candice S.","sponsored_at":"2014-03-12","state":"MI","thomas_id":"01731","title":"Rep"},{"district":"1","name":"Miller, Jeff","sponsored_at":"2014-03-06","state":"FL","thomas_id":"01685","title":"Rep"},{"district":"18","name":"Murphy, Tim","sponsored_at":"2014-02-28","state":"PA","thomas_id":"01744","title":"Rep"},{"district":"35","name":"Negrete McLeod, Gloria","sponsored_at":"2014-03-05","state":"CA","thomas_id":"02108","title":"Rep"},{"name":"Norton, Eleanor Holmes","sponsored_at":"2014-03-10","state":"DC","thomas_id":"00868","title":"Rep"},{"district":"22","name":"Nunes, Devin","sponsored_at":"2014-02-28","state":"CA","thomas_id":"01710","title":"Rep"},{"district":"16","name":"O'Rourke, Beto","sponsored_at":"2014-02-26","state":"TX","thomas_id":"02162","title":"Rep"},{"district":"6","name":"Pallone, Frank, Jr.","sponsored_at":"2014-02-06","state":"NJ","thomas_id":"00887","title":"Rep"},{"district":"3","name":"Paulsen, Erik","sponsored_at":"2014-03-06","state":"MN","thomas_id":"01930","title":"Rep"},{"district":"2","name":"Pearce, Stevan","sponsored_at":"2014-02-18","state":"NM","thomas_id":"01738","title":"Rep"},{"district":"14","name":"Peters, Gary C.","sponsored_at":"2014-03-05","state":"MI","thomas_id":"01929","title":"Rep"},{"district":"6","name":"Petri, Thomas E.","sponsored_at":"2014-03-05","state":"WI","thomas_id":"00912","title":"Rep"},{"district":"16","name":"Pitts, Joseph R.","sponsored_at":"2014-02-06","state":"PA","thomas_id":"01514","title":"Rep"},{"district":"4","name":"Pompeo, Mike","sponsored_at":"2014-03-10","state":"KS","thomas_id":"02022","title":"Rep"},{"district":"6","name":"Price, Tom","sponsored_at":"2014-03-05","state":"GA","thomas_id":"01778","title":"Rep"},{"district":"3","name":"Rahall, Nick J., II","sponsored_at":"2014-03-06","state":"WV","thomas_id":"00940","title":"Rep"},{"district":"13","name":"Rangel, Charles B.","sponsored_at":"2014-03-05","state":"NY","thomas_id":"00944","title":"Rep"},{"district":"23","name":"Reed, Tom","sponsored_at":"2014-03-06","state":"NY","thomas_id":"01982","title":"Rep"},{"district":"2","name":"Rigell, E. Scott","sponsored_at":"2014-03-11","state":"VA","thomas_id":"02068","title":"Rep"},{"district":"1","name":"Roe, David P.","sponsored_at":"2014-02-28","state":"TN","thomas_id":"01954","title":"Rep"},{"district":"8","name":"Rogers, Mike J.","sponsored_at":"2014-02-26","state":"MI","thomas_id":"01651","title":"Rep"},{"district":"17","name":"Rooney, Thomas J.","sponsored_at":"2014-03-11","state":"FL","thomas_id":"01916","title":"Rep"},{"district":"36","name":"Ruiz, Raul","sponsored_at":"2014-02-28","state":"CA","thomas_id":"02109","title":"Rep"},{"district":"2","name":"Ruppersberger, C. A. Dutch","sponsored_at":"2014-03-05","state":"MD","thomas_id":"01728","title":"Rep"},{"district":"1","name":"Rush, Bobby L.","sponsored_at":"2014-03-10","state":"IL","thomas_id":"01003","title":"Rep"},{"name":"Sablan, Gregorio Kilili Camacho","sponsored_at":"2014-03-05","state":"MP","thomas_id":"01962","title":"Rep"},{"district":"5","name":"Schrader, Kurt","sponsored_at":"2014-03-05","state":"OR","thomas_id":"01950","title":"Rep"},{"district":"13","name":"Schwartz, Allyson Y.","sponsored_at":"2014-02-26","state":"PA","thomas_id":"01798","title":"Rep"},{"district":"13","name":"Scott, David","sponsored_at":"2014-03-05","state":"GA","thomas_id":"01722","title":"Rep"},{"district":"32","name":"Sessions, Pete","sponsored_at":"2014-02-26","state":"TX","thomas_id":"01525","title":"Rep"},{"district":"9","name":"Shuster, Bill","sponsored_at":"2014-03-10","state":"PA","thomas_id":"01681","title":"Rep"},{"district":"21","name":"Smith, Lamar","sponsored_at":"2014-03-10","state":"TX","thomas_id":"01075","title":"Rep"},{"district":"14","name":"Speier, Jackie","sponsored_at":"2014-03-06","state":"CA","thomas_id":"01890","title":"Rep"},{"district":"15","name":"Stivers, Steve","sponsored_at":"2014-03-05","state":"OH","thomas_id":"02047","title":"Rep"},{"district":"41","name":"Takano, Mark","sponsored_at":"2014-03-06","state":"CA","thomas_id":"02110","title":"Rep"},{"district":"2","name":"Terry, Lee","sponsored_at":"2014-02-26","state":"NE","thomas_id":"01566","title":"Rep"},{"district":"5","name":"Thompson, Mike","sponsored_at":"2014-03-05","state":"CA","thomas_id":"01593","title":"Rep"},{"district":"13","name":"Thornberry, Mac","sponsored_at":"2014-02-28","state":"TX","thomas_id":"01155","title":"Rep"},{"district":"12","name":"Tiberi, Patrick J.","sponsored_at":"2014-03-05","state":"OH","thomas_id":"01664","title":"Rep"},{"district":"20","name":"Tonko, Paul","sponsored_at":"2014-03-06","state":"NY","thomas_id":"01942","title":"Rep"},{"district":"6","name":"Upton, Fred","sponsored_at":"2014-02-06","state":"MI","thomas_id":"01177","title":"Rep"},{"district":"2","name":"Walorski, Jackie","sponsored_at":"2014-03-10","state":"IN","thomas_id":"02128","title":"Rep"},{"district":"33","name":"Waxman, Henry A.","sponsored_at":"2014-02-06","state":"CA","thomas_id":"01209","title":"Rep"},{"district":"3","name":"Westmoreland, Lynn A.","sponsored_at":"2014-03-05","state":"GA","thomas_id":"01779","title":"Rep"},{"district":"1","name":"Whitfield, Ed","sponsored_at":"2014-03-05","state":"KY","thomas_id":"01222","title":"Rep"}],"related_bills":[{"bill_id":"hres515-113","reason":"rule","type":"bill"},{"bill_id":"hr2810-113","reason":"related","type":"bill"},{"bill_id":"hr4209-113","reason":"related","type":"bill"},{"bill_id":"hr4418-113","reason":"related","type":"bill"},{"bill_id":"hr4750-113","reason":"related","type":"bill"},{"bill_id":"s1769-113","reason":"related","type":"bill"},{"bill_id":"s1871-113","reason":"related","type":"bill"},{"bill_id":"s2000-113","reason":"identical","type":"bill"},{"bill_id":"s2110-113","reason":"related","type":"bill"},{"bill_id":"s2122-113","reason":"related","type":"bill"},{"bill_id":"s2157-113","reason":"related","type":"bill"}],"titles":[{"as":"introduced","title":"SGR Repeal and Medicare Provider Payment Modernization Act of 2014","type":"short"},{"as":"passed house","title":"SGR Repeal and Medicare Provider Payment Modernization Act of 2014","type":"short"},{"as":"introduced","title":"To amend title XVIII of the Social Security Act to repeal the Medicare sustainable growth rate and improve Medicare payments for physicians and other professionals, and for other purposes.","type":"official"}],"history":{"active":true,"active_at":"2014-03-12T19:24:00-04:00","house_passage_result":"pass","house_passage_result_at":"2014-03-14T11:16:00-04:00"},"sponsor":{"district":"26","name":"Burgess, Michael C.","state":"TX","thomas_id":"01751","title":"Rep","type":"person"},"summary":{"as":"Passed House amended","date":"2014-03-14","text":"SGR Repeal and Medicare Provider Payment Modernization Act of 2014 - (Sec. 2) Amends part B (Supplementary Medical Insurance) of title XVIII (Medicare) of the Social Security Act (SSA) to: (1) end with 2013 the current formula for an update to the single conversion factor in the formula for payment for physicians' services, (2) end and remove sustainable growth rate (SGR) methodology from the determination of such annual conversion factors, (3) prescribe an update to the single conversion factor for 2014-2018 of 0.5%, (4) freeze the update to the single conversion factor at 0.00% for 2019-2023, and (5) establish for 2024 and subsequent years an update of 1% for health professionals participating in alternative payment models (APMs) and an update of 0.5% for all other health professionals.\n\nDirects the Medicare Payment Advisory Commission (MEDPAC) to report to Congress on the relationship between: (1) physician and other health professional utilization and expenditures (and their rates of increase) of items and services for which Medicare payment is made, and (2) total utilization and expenditures (and their rate of increase) under Medicare parts A (Hospital Insurance), B, and D (Voluntary Prescription Drug Benefit Program).\n\nDirects MEDPAC to report to Congress on: (1) the payment update for professional services applied for 2014-2018; (2) the effect of that update on the efficiency, economy, and quality of care; (3) the update's effect on ensuring a sufficient number of providers to maintain access to care by Medicare beneficiaries; and (4) recommendations for any future payment updates to ensure adequate access to care is maintained for such beneficiaries.\n\nDirects the Secretary of Health and Human Services (HHS) to establish a merit-based incentive payment system (MIPS) by consolidating (with certain revisions) the existing: (1) electronic health record (EHR) meaningful use incentive program, (2) quality reporting program, and (3) value-based payment program.\n\n Applies the MIPS program to payments for items and services furnished on or after January 1, 2018.\n\nRequires MIPS-eligible professionals (excluding most APM participants) to receive annual payment increases or decreases based on their performance.\n\nDefines MIPS-eligible professional as: (1) a physician, a physician assistant, nurse practitioner, clinical nurse specialist, and a certified registered nurse anesthetist during the MIPS program's first two years, and (2) also other eligible professionals specified by the Secretary for succeeding years.\n\n Excludes from treatment as a MIPS eligible professional any eligible professional who is: (1) a qualifying APM participant; (2) a partial qualifying APM participant for the most recent period for which data are available and who, for the performance period with respect to that year, does not report on applicable measures and activities a MIPS professional is required to report; or (3) does not exceed, for that performance period, a specified low-volume threshold measurement.\n\nQualifies for MIPS incentive payments a partial qualifying APM participant who reports on applicable measures and activities a MIPS professional is required to report.\n\nPrescribes requirements for: (1) application of the MIPS program to group practices; and (2) measures and activities under the performance categories of quality, resource use, clinical practice improvement, and meaningful use of EHR technology.\n\nRequires the Secretary, on an ongoing basis, to: (1) estimate how an individual's health status and other risk factors affect quality and resource use outcome measures; (2) incorporate information from quality and resource use outcome measurements (including care episode and patient condition groups) into the MIPS; and (3) account for identified factors with an effect on those measures when determining payment adjustments, composite performance scores, scores for performance categories, or scores for measures or activities under the MIPS. Requires the Secretary to: (1) establish performance standards for the MIPS program, taking into account historical performance standards, improvement rates, and the opportunity for continued improvement; and (2) develop a methodology for assessing the total performance of each MIPS eligible professional according to such standards with respect to applicable measures and activities for each performance category, leading to a composite performance score for each professional for each performance period.\n\nDirects the Secretary to specify a MIPS adjustment factor for each MIPS eligible professional for a year according to a formula taking into account composite performance scores above or below a performance threshold, including those at or above an additional performance threshold (for exceptional performance).\n\nMakes appropriations for 2018-2023 from the Federal Supplementary Medical Insurance Trust Fund for MIPS payments resulting from additional MIPS adjustment factors.\n\nPrescribes a formula for the calculation of MIPS program incentive payments, beginning with 2018, subject to criteria for budget neutrality as well as a process for review of the calculation of an individual professional's MIPS program incentive payment adjustment factor for a year.\n\nDirects the Secretary to make available on the Physician Compare website of the Centers for Medicare & Medicaid Services (CMS) certain information, including information regarding the performance of MIPS-eligible professionals.\n\nDirects the Secretary to enter into contracts or agreements with appropriate entities (such as quality improvement organizations, regional extension centers, or regional health collaboratives) to offer guidance and assistance about performance categories or transition to an APM to MIPS-eligible professionals in practices of 15 or fewer professionals (with priority given to practices located in rural areas, health professional shortage areas, medically underserved areas, and practices with low composite performance scores).\n\nRequires the Secretary to make available to each MIPS eligible professional timely (such as quarterly) confidential feedback and other information to improve performance.\n\nRequires the Comptroller General (GAO) to: (1) evaluate the MIPS program; and (2) report on the similarities and differences in the use of quality measures under the original Medicare fee-for-service program, the Medicare Advantage program under Medicare part C (Medicare+Choice), selected state medical assistance programs under SSA title XIX (Medicaid), and private payer arrangements, and make recommendations on how to reduce the administrative burden involved in applying such quality measures.\n\nDirects GAO to examine: (1) whether entities that pool financial risk for physician services (such as independent risk managers) can play a role in supporting physician practices in assuming financial risk for treatment of patients; and (2) the transition to an APM of professionals in rural areas, health professional shortage areas, or medically underserved areas.\n\nEstablishes the Payment Model Technical Advisory Committee to make recommendations to the Secretary on physician-focused payment models.\n\nPrescribes incentive payments for participation in eligible APMs between 2018 and 2023, consisting of an additional 5% of the current-year payment amount for the covered professional services for the preceding year.\n\nProhibits any construction of this Act to preclude an APM or a qualifying APM participant from furnishing a telehealth service for which Medicare payment is not made.\n\nDirects the Secretary to study: (1) the feasibility of integrating APMs in the Medicare Advantage payment system, (2) the applicability of federal fraud prevention laws to items and services furnished under Medicare for which payment is made under an APM, (2) aspects of such APMs that are vulnerable to fraudulent activity, and (3) the implication of waivers to such laws granted in support of such APMs.\n\nRequires the Secretary to study: (1) the effect of individuals' socioeconomic status on quality and resource use outcome measures for individuals under Medicare; and (2) the impact of certain risk factors, race, health literacy, limited English proficiency (LEP), and patient activation on quality and resource use outcome measures under Medicare.\n\nDirects the Secretary, taking account of such studies, to: (1) estimate how an individual's health status and other risk factors affect quality and resource use outcome measures and, as feasible, to incorporate information from quality and resource use outcome measurement into the eligible professional MIPS incentive program; and (2) account for other identified factors with an effect on quality and resource use outcome measures when determining payment adjustments under the MIPS incentive program.\n\nDirects the Secretary to develop and report to Congress on a strategic plan for collecting or otherwise assessing data on race and ethnicity for purposes of carrying out the eligible professional MIPS incentive program.\n\nDirects the Secretary to take certain steps, including development of care episode and patient condition groups as well as proposed classification codes, in order to involve the physician, practitioner, and other stakeholder communities in enhancing the infrastructure for resource use measurement for MIPS, APM, and other purposes.\n\n Prohibits the Secretary from contracting with an entity, or an entity from subcontracting with another entity, if either the contracting or the subcontracting entity currently makes recommendations to the Secretary on relative values for physicians' services under the fee schedule. (Sec. 3) Directs the Secretary to develop and post on the Internet website of the Centers for Medicare and Medicaid Services (CMS) a draft plan as well as an operational plan, taking stakeholder comments on the draft plan into account, for the development of quality measures to assess professionals.\n\nDirects the Secretary to enter into contracts or other arrangements with entities, including those organizations with quality measure development expertise, for the purpose of developing, improving, updating, or expanding such quality measures.\n\nRequires the Secretary to transfer $15 million from the Federal Supplemental Medical Insurance Trust Fund to the CMS Program Management Account for each of FY2014-2018.\n\n(Sec. 4) Requires the Secretary to: (1) establish one or more Healthcare Common Procedure Coding System (HCPCS) codes for chronic care management services for patients with chronic care needs, (2) make payments for any such services furnished by an applicable provider, and (3) conduct an education and outreach campaign to inform professionals who furnish items and services under Medicare part B and Medicare part B enrollees of the benefits of chronic care management services.\n\n(Sec. 5) Authorizes the Secretary to: (1) collect or obtain information from any eligible professional or any other source on the resources directly or indirectly related to furnishing services paid for under the Medicare fee schedule, and (2) use such information to determine relative values for those services.\n\nAuthorizes the Secretary to establish or adjust practice expense relative values using cost, charge, or other data from suppliers or service providers, including any such collected or obtained information.\n\nExpands the list of codes the Secretary must examine to identify services that may be misvalued, including codes: (1) that account for the majority of spending under the physician fee schedule, (2) that have experienced a substantial change in the hospital length of stay or procedure time, (3) for which there is a significant difference in payment for the same service between different sites of service, (4) with high intra-service work per unit of time, (5) with high practice expense relative value units (RVUs), and (6) with high cost supplies.\n\nSets at 0.5% of the estimated amount of fee schedule expenditures in 2015-2018 the annual target (estimated net reduction in expenditures under the fee schedule) with respect to relative value adjustments for misvalued services.\n\nDeclares that, for fee schedules beginning with 2015, if the RVUs for a service for a year would otherwise be decreased by an estimated 20% or more as compared to the total RVUs for the previous year, the applicable adjustments in work, practice expense, and malpractice RVUs must be phased-in over a two-year period.\n\nDirects GAO to study the processes used by the Relative Value Scale Update Committee (RUC) (of the American Medical Association) to make recommendations to the Secretary regarding relative values for specific services.\n\nRequires the use on or after January 1, 2017, of metropolitan statistical areas (MSAs) as fee schedule areas in California, with all areas not included in an MSA to be treated as a single rest-of-state fee schedule area.\n\nPrescribes a formula for the geographic index values applied to the physicians fee schedule for MSAs previously in the rest-of-payment locality or in locality 3.\n\n Directs the Secretary to make publicly available the information used to establish the multiple procedure payment reduction policy to the professional component of imaging services in a specified final rule under the physicians fee schedule.\n\n(Sec. 6) Directs the Secretary to: (1) establish a program to promote the use of appropriate use criteria for certain advanced diagnostic imaging services furnished by ordering and furnishing professionals, and (2) specify applicable appropriate use criteria for imaging services from among appropriate use criteria developed or endorsed by national professional medical specialty societies or other entities.\n\nDirects the Secretary to: (1) determine, on a periodic basis, outlier ordering professionals; and (2) apply prior authorization for applicable imaging services ordered by an outlier ordering professional.\n\nProhibits the construction of these requirements as authorizing the Secretary to develop or initiate the development of clinical practice guidelines or appropriate use criteria.\n\n(Sec. 7) Requires the Secretary to make publicly available on the CMS Physician Compare website specified information with respect to eligible professionals.\n\n(Sec. 8) Allows a qualified entity, beginning July 1, 2015, to use Medicare claims data combined with data from sources other than claims data, as well as information derived from a specified performance evaluation of service providers and suppliers, to: (1) conduct additional appropriate non-public analyses; and (2) provide or sell them (subject to certain conditions) to physicians, other professionals, providers, medical societies, and hospital associations and certain other entities for non-public use. Prohibits any use of an analysis or data for marketing purposes.\n\nExpands the kinds (including standardized extracts) and uses of claims data available to qualified entities for quality improvement activities.\n\nLimits the provision or sale of such analyses to: (1) an employer solely for the purposes of providing health insurance to its employees and retirees, and (2) a health insurance issuer only if the issuer is providing the qualified entity offering the analyses with Medicare claims data combined with data from sources other than claims data.\n\nRequires a qualified entity and an authorized user that is a service provider, supplier, or medical society or hospital association to enter into an agreement regarding the use of any data that the qualified entity is providing to or selling the user, including privacy and data security requirements and any prohibitions on using such data to link to other individually identifiable sources of information. Requires the Secretary to: (1) impose a specified administrative assessment for any breach of such an agreement by a qualified entity, and (2) deposit assessment amounts into the Federal Supplementary Medical Insurance Trust Fund. Prohibits authorized users from redisclosing (except for performance improvement and care coordination activities) or making public any analysis, data, or analysis using data they have obtained or bought. Requires any fees charged for making standardized extracts of claims data available to qualified entities to be deposited into the CMS Program Management Account (currently, into the Federal Supplementary Medical Insurance Trust Fund). Directs the Secretary to provide Medicare claims data, and if appropriate also data under Medicaid and SSA title XXI (Children's Health Insurance Program) (CHIP), to requesting qualified clinical data registries in order to link such data with clinical outcomes data and perform risk-adjusted, scientifically valid analyses and research to support quality improvement or patient safety. Limits fees charged for such data to the cost of providing it, and requires their deposit into the CMS Program Management Account.\n\nRequires any fees charged for making standardized extracts of claims data available to qualified entities to be deposited into the CMS Program Management Account (currently, into the Federal Supplementary Medical Insurance Trust Fund).\n\n(Sec. 9) Permits continuing automatic extensions of a Medicare physician and practitioner election to opt-out of the Medicare physician payment system into private contracts.\n\nDirects the Secretary to make publicly available through an appropriate publicly accessible website information on the number and characteristics of opt-out physicians and practitioners.\n\nDirects the Secretary to make recommendations to Congress to amend existing fraud and abuse law to permit gainsharing or similar arrangements between physicians and hospitals that improve care while reducing waste and increasing efficiency.\n\nDeclares it a national objective to achieve widespread and nationwide exchange of health information through interoperable certified EHR technology by December 31, 2017, as a consequence of a significant federal investment in the implementation of health information technology through the Medicare and Medicaid EHR incentive programs.\n\nDirects the Secretary to study the feasibility of establishing mechanisms to compare certified EHR technology products.\n\n(Sec. 10) Amends the Internal Revenue Code to delay until January 1, 2019, implementation of the penalty for failure to comply with the individual health insurance mandate under the Patient Protection and Affordable Care Act to maintain minimum essential health care coverage."},"bill_id":"hr4015-113","bill_type":"hr","congress":"113","introduced_at":"2014-02-06","number":"4015","official_title":"To amend title XVIII of the Social Security Act to repeal the Medicare sustainable growth rate and improve Medicare payments for physicians and other professionals, and for other purposes.","short_title":"SGR Repeal and Medicare Provider Payment Modernization Act of 2014","status":"PASS_OVER:HOUSE","status_at":"2014-03-14T11:16:00-04:00","subjects":["Advisory bodies","Congressional oversight","Fraud offenses and financial crimes","Government information and archives","Government studies and investigations","Government trust funds","Health","Health care coverage and access","Health care quality","Health information and medical records","Health personnel","Hospital care","Medicare","Minority health","Performance measurement","Rural conditions and development"],"subjects_top_term":"Health","updated_at":"2014-09-13T06:55:49-04:00"}

It freezes and CPU is busy.

Exception serializing a class that inherits from a Dictionary<,>

When serialization occours an "Index was outside the bounds of the array" is thrown. it happens when is trying to get the generic arguments of the class instead of the base type. https://github.com/rpgmaker/NetJSON/blob/master/NetJSON/NetJSON.cs#L1589

class Program
 {
    static void Main(string[] args)
    {
        var success = NetJSON.NetJSON.Serialize(new Dictionary<string,string> { { "test", "123" } });
        var failed = NetJSON.NetJSON.Serialize(new Meta {{"test", "123"}});
    }
 }

 public class Meta : Dictionary<string, string>
 { 
 }

Nice perfomance trick

        internal static NetJSONSerializer<T> GetSerializer<T>() {
            return SerizlizerCache<T>.Ser; // Nice trick instead of concurrent dictionary
        }

        private static class SerizlizerCache<T>
        {
            public static readonly NetJSONSerializer<T> Ser = 
                (NetJSONSerializer<T>) Activator.CreateInstance(Generate(typeof (T)));
        }

Properties of type object are ignored

If I serialize SomeDTO, it works fine. But if I have a wrapper class with property of type object, like:

public class SomeWrapper { public object Payload { get; set; } };
var wrapper = new SomeWrapper { Payload = new SomeDto { ... } }; 

then Payload is empty in serialized json string. Is that by design and limitation of this lib, or something else?

Deserialized object is incorrect (Case #5)

When I deserialize the following JSON:

[  
   {  
      "id":"b21c43cc-3dd5-11e4-9dac-6274cc1fb069",
      "created_at":"Tue Sep 16 19:15:11 UTC 2014",
      "title":"Software Engineer",
      "location":"New York, NY",
      "type":"Full Time",
      "description":"<p><a href=\"http://www.beatport.com\">Beatport</a> is growing and we are looking for talented people who are passionate about what they do. We have built an amazing business around inspiring people to play with music and everyone&#39;s role here plays an important part in this.</p>\n\n<p>We are looking for a Software Engineer to join our team working on an exciting new music platform! We are looking for someone with a strong background in infrastructure as code, software development and full stack maintenance. This is a full time position in New York , NY.</p>\n\n<p><strong>Responsibilities:</strong></p>\n\n<ul>\n<li><p>Supporting dev and test infrastructure for multiple teams</p></li>\n<li><p>Development and maintenance of all aspects of our platform</p></li>\n<li><p>Configuration and tuning of supporting services such as MySQL and Apache Solr</p></li>\n<li><p>Application debugging and bug resolution</p></li>\n<li><p>Maintenance and configuration of servers and systems</p></li>\n</ul>\n\n<p><strong>You definitely:</strong></p>\n\n<ul>\n<li><p>Have experience deploying, maintaining, and developing Web applications</p></li>\n<li><p>Have proven experience with Python and PHP development and debugging</p></li>\n<li><p>Have proficiency with at least one configuration management framework (Chef, Salt, Ansible, Puppet, etc) and have opinions on their relative strengths and weaknesses</p></li>\n<li><p>Have a strong background in Linux system administration (CentOS, Scientific Linux, Ubuntu LTS)</p></li>\n<li><p>Understand the Unix philosophy</p></li>\n<li><p>Have opinions on the right way to do things, and are comfortable sharing them, respectfully and collaboratively</p></li>\n<li><p>Have experience with AWS and IaaS methodologies</p></li>\n</ul>\n\n<p><strong>It would be nice if you:</strong></p>\n\n<ul>\n<li><p>Have experience configuring, deploying, operating, and maintaining sophisticated relational databases, including replication</p></li>\n<li><p>Have an interest in, or want to learn more about, Continuous Integration and Continuous Deployment</p></li>\n</ul>\n\n<p><strong>Benefits:</strong></p>\n\n<p>We offer a competitive compensation package, plenty of vacation days, and VIP access to select music events. We hire people who love what they do and we make sure they have plenty of room for growth- we have an Employee Development Program which includes conferences and lab days.</p>\n\n<p>Moreover, you will work with a team that values collaboration and mentorship. We are always helping one another -someone almost always has the answer for any question you&#39;ve got.</p>\n\n<p><strong>How to apply:</strong></p>\n\n<p><a href=\"https://sfx.recruiterbox.com/jobs/fk0ct2/\">Please send a short note</a> introducing yourself and why this position appeals to you. Include a resume, and links to code samples and a link to a portfolio if you have one.  </p>\n\n<p><a href=\"https://sfx.recruiterbox.com/jobs/fk0ct2/\">Apply Here!</a></p>\n",
      "how_to_apply":"<p>Please apply here: <a href=\"https://sfx.recruiterbox.com/jobs/fk0ct2/\">https://sfx.recruiterbox.com/jobs/fk0ct2/</a></p>\n",
      "company":"Beatport",
      "company_url":"http://www.beatport.com/",
      "company_logo":"http://github-jobs.s3.amazonaws.com/7f298736-3dd5-11e4-8524-f5a395a38289.jpeg",
      "url":"http://jobs.github.com/positions/b21c43cc-3dd5-11e4-9dac-6274cc1fb069"
   },
   {  
      "id":"2d30eb44-3976-11e4-9687-d805defc2dfb",
      "created_at":"Thu Sep 11 05:40:46 UTC 2014",
      "title":"Senior Software Engineer (Professional Services)",
      "location":"New York, NY, US",
      "type":"Full Time",
      "description":"<p><a href='http://www.jobscore.com/jobs/crowdtwist/list'><img src='https://jobscore-assets.s3.amazonaws.com/account_logos/logo_b6dSPiUVer44qIiGak6IKg.png' /></a><br /><p><strong>About Us:</strong></p><p>CrowdTwist is an industry-leading provider of comprehensive multichannel loyalty and analytics solutions that drive engagement and incremental spend, leading to better customer data, stronger insight, and more personalized experiences. We are revolutionizing loyalty, helping top brands including Pepsi, Nestl\u00e9 Purina, L&#39;oreal, and Zumiez develop a deeper understanding of customers.</p><p><strong>About the Role:</strong></p><p>CrowdTwist is seeking a Senior Software Engineer for our growing Professional Services team based in New York City.\u00a0 In this role, you will work directly with our clients in supporting their loyalty programs and integrations with the CrowdTwist platform. \u00a0You will also assist by helping our clients bring new loyalty programs to life.</p><p>You will work directly with our Client Success team to ensure that our clients are making the most of the CrowdTwist platform. \u00a0Your work will span many areas of the CrowdTwist platform, including but not limited to:</p><ul>    <li>The consumer-facing loyalty program experience</li> <li>Our RESTful APIs</li>   <li>Back end integrations with social networks (Facebook, Twitter, Instagram, and Foursquare)</li>  <li>Our data-driven, client-customizable JavaScript SDK</li>    <li>Our client-facing content management applications</li></ul><p>Your work will likely be featured in television, print, consumer goods packaging, and online media. \u00a0The Professional Services team offers a fast-paced, high-energy environment that will surely keep you sharp and on your toes on a daily basis. \u00a0This role is for an engineer who loves to roll up their sleeves, dive in, and tackle any problem with speed and precision. \u00a0As the senior-most engineer on the Professional Services team, you will naturally gain authority over time, ultimately helping lead and mentor other engineers within the team.</p><p>In this role, you will work with a broad back end tech stack, including but not limited to:</p><ul> <li>PHP</li>    <li>Java</li>   <li>Oracle</li> <li>Node.js</li>    <li>Redis</li>  <li>Amazon Web Services</li>    <li>Various third-party services (Twilio, SendGrid, EdgeCast, etc.)</li></ul><p><strong>You:</strong></p><ul>   <li>Have a college degree in Computer Science or equivalent experience</li> <li>Have 7+ years of professional experience with one or more of: PHP, Ruby, Python, Java, C, C++</li>  <li>Know your way around a relational and/or NoSQL database</li>    <li>Write great code, view it as a craft, and love cranking out solid work</li></ul><p>At over one million lines of code, you\u2019ll be working with a large, highly-trafficked, scalable application. \u00a0Quality is of extreme importance to us, so you\u2019ll be writing unit and integration tests, which are used in our continuous integration process. \u00a0Our QA team will show you no mercy, either\u00a0\u2014 bring your \u201cA&quot; game.</p><p>You should be back end-focused, but our front end tech stack covers a wide range of JavaScript frameworks and related tools, such as:</p><ul>    <li>Angular</li>    <li>CoffeeScript</li>   <li>Backbone</li>   <li>Marionette</li> <li>Jade</li>   <li>Sass</li>   <li>jQuery</li></ul><p>Bonus points for front end development and systems administration experience.</p><p>We have a fun, generous company culture that&#39;s built on our fundamental principle that when you give more, you get more:</p><ul> <li>We offer a generous employee benefits package including stock options, fully paid medical, dental and vision plans for employees and their dependents</li>  <li>We bring toys to the office but still think the most fun thing to do is build product</li>  <li>We love getting to know one another outside the office through CrowdTwist sponsored events (volleyball and dodgeball teams, high speed go-karting, bowling, paintball, happy hour, etc.)</li>   <li>Provide lunches, drinks and snacks so our team can be hungry for other things</li>  <li>Learn from and teach each other at CrowdTwist U</li>    <li>Try to say what we mean and mean what we say</li></ul><p>If this sounds like you, get in touch. We&#39;re cool, relaxed, experienced, hard driving, changing our industry and looking for smart people like yourself to help tackle tough technical challenges.</p><p>This is a full-time position based in our New York City office. \u00a0Relocation assistance will be available if needed.</p><p>Take a peek inside our office here:\u00a0 <a href=\"https://www.themuse.com/companies/crowdtwist\">CrowdTwist Office</a></p> <img src=\"https://www.applytracking.com/track.aspx/5b0v1\"/></p>\n",
      "how_to_apply":"<p><a href=\"https://www.applytracking.com/track.aspx/5b0vB\">https://www.applytracking.com/track.aspx/5b0vB</a></p>\n",
      "company":"CrowdTwist",
      "company_url":null,
      "company_logo":null,
      "url":"http://jobs.github.com/positions/2d30eb44-3976-11e4-9687-d805defc2dfb"
   },
   {  
      "id":"b5093efc-3464-11e4-9264-6d8f547532a4",
      "created_at":"Thu Sep 04 18:54:40 UTC 2014",
      "title":"Senior Software Engineer - New York",
      "location":"New York, NY",
      "type":"Full Time",
      "description":"<p>Signpost is making it easier for local businesses to find new customers and keep them coming back. Our software-as-a-service platform automates the myriad tasks required to effectively market a small business online, freeing owners to focus on what they do best. We\u2019re backed by some of the smartest investors out there, like Google Ventures and Spark Capital, and our product is taking off, being used by thousands of businesses nationwide.</p>\n\n<p>Our <a href=\"http://www.signpost.com/engineering\">engineering team</a> is growing rapidly and we\u2019re looking for our next generation of technical leaders. Our culture is collaborative and emphasizes continuous improvement of ourselves, our systems, and our organization. If you\u2019re ready to join an outstanding and passionate team of engineers - not hackers - at a fast-moving startup where you can learn, grow, and have real technical ownership, you\u2019ve come to the right place.</p>\n\n<p>As a senior engineer, you\u2019ll be working on extending, improving and scaling systems and applications built primarily in Node.js. While we\u2019re not expecting you to be a Node expert when you walk in the door, we will expect you to:</p>\n\n<ul>\n<li>Work closely with product managers to define, scope, refine and drive the implementation of new features from conception to release</li>\n<li>Assist, lead and mentor junior engineers, making sure to be an available resource and play an active role in their professional development</li>\n<li>Perform diligent, timely code reviews for your peers and subordinates, while taking their feedback as an opportunity to learn and improve</li>\n<li>Architect systems for fault-tolerance, correctness, security and availability</li>\n<li>Participate in our interview process to select and attract outstanding talent</li>\n<li>Help engineering leadership to constantly improve</li>\n<li>Exemplify our culture of technical excellence</li>\n</ul>\n\n<p>You should:</p>\n\n<ul>\n<li>Have well-honed technical problem solving and analytical skills</li>\n<li>Be proficient in several high-level languages like Python, Ruby, Java, or C++</li>\n<li>Have a strong command of CS fundamentals - even if you don\u2019t use it every day</li>\n<li>Be able to articulate technical concepts clearly and concisely</li>\n<li>Have a solid mastery of software engineering tools and best practices</li>\n<li>Thoroughly understand persistence and networking concepts and technologies</li>\n<li>Have a deep mistrust of code without adequate test coverage</li>\n<li>Appreciate agility and pragmatism in software development</li>\n<li>Thrive in a startup environment - where we\u2019re making it up as we go</li>\n<li>Genuinely enjoy coaching and mentoring junior engineers</li>\n<li>Want to build a great product and love your job</li>\n<li>Be a team player with a can-do attitude</li>\n</ul>\n\n<p>We would love you to:</p>\n\n<ul>\n<li>Have an unquenchable thirst for new knowledge</li>\n<li>Always be striving to take your skills to the next level</li>\n<li>Understand how your code works down to the silicon</li>\n<li>Know that building secure systems is an endless battle</li>\n<li>Know that investing in developing solid tests pays for itself quickly</li>\n<li>Know that the root of all evil isn&#39;t love of money, it\u2019s premature optimization</li>\n<li>Be active in the open source community (send us your GitHub handle or tech blog)</li>\n</ul>\n\n<p>About Signpost</p>\n\n<p>Signpost gives local businesses the power to effortlessly build and manage customer relationships. Our platform automates and tracks all essential, cost-effective marketing interactions to deliver a positive, measurable return on investment. By providing comprehensive customer data and saving business owners time reaching new and existing customers with the right message at the right time, Signpost increases new and repeat sales.</p>\n\n<ul>\n<li>$15M funding (Google Ventures, Spark Capital, Scout Ventures, OpenView Ventures)</li>\n<li>200 employees</li>\n<li>Headquartered in New York with offices in Denver and Austin</li>\n<li>Powering millions of customer interactions monthly</li>\n<li>15% MoM revenue growth 2 years running</li>\n<li>Named one of America&#39;s Most Promising Companies by Forbes Magazine</li>\n</ul>\n",
      "how_to_apply":"<p><em>We expect successful candidates for this role will have at least five years of professional experience, with some coaching under their belt, but neither is a hard and fast requirement.</em></p>\n\n<p><em>We offer a competitive compensation package including benefits, equity options, and relocation assistance.</em></p>\n\n<p><em>Sound good? Apply <a href=\"https://hire.jobvite.com/j?aj=oISlZfwE&amp;s=GitHub\">here</a>!</em></p>\n",
      "company":"SIGNPOST",
      "company_url":null,
      "company_logo":"http://github-jobs.s3.amazonaws.com/e436a9b4-36d8-11e4-913f-958af59314cc.png",
      "url":"http://jobs.github.com/positions/b5093efc-3464-11e4-9264-6d8f547532a4"
   },
   {  
      "id":"cd87fa3c-7f55-11e3-967f-967ee3c991db",
      "created_at":"Sun Aug 31 09:00:24 UTC 2014",
      "title":"Senior Vulnerability Engineer",
      "location":"New York, NY",
      "type":"Full Time",
      "description":"<p><strong>The Role:</strong></p>\n\n<p>Trading System Enterprise Risk R&amp;D team provides Enterprise Level Market and Counterparty/Credit Risk management analytics to both Sell-side broker/dealers and Buy-Side Institutional Investment Managers and Hedge-Funds. Our product covers a wide variety of financial instrument types including but not limited to Fixed-Income, Interest Rate Swaps, Credit Default Swaps, Equity/Index/FX Options, and Structured Notes. We provide over 80 different Risk analytics in Market and Counterparty/Credit Risk to our customers and unlimited slice and dice of these analytics to allow them to actively manage firm wide risk.</p>\n\n<p>Trading System Enterprise Risk R&amp;D is looking for extremely driven software developer who has experience working with large scale software systems.  The successful candidate will be someone who is a self-starter with ownership attitude and a good communicator that is able to work with various business and R&amp;D teams.  This is excellent opportunity to get involved in shaping a new product line and become expert in the domain.</p>\n\n<p><strong>Required Technical Skills:</strong></p>\n\n<ul>\n<li>Experience managing or performing penetration testing on large enterprise Windows networks</li>\n<li>Experience overseeing the &quot;fix it&quot; phase of penetration testing</li>\n<li>Proven record of discovering, analyzing and exploiting application vulnerabilities and misconfigurations on Windows platforms</li>\n<li>Experience assessing and hardening Active Directory and Group Policy and knowledge of cutting edge security features of Microsoft Windows</li>\n<li>Ability to adapt existing exploits or advisories into robust exploits specific to the Bloomberg environment</li>\n<li>Familiarity with cutting edge trends in vulnerability analysis, exploit development and vulnerability discovery</li>\n<li>Intimate knowledge of Windows internals, especially those relevant to authentication and access control and other facets of security</li>\n<li>Proficiency in reading, writing, and auditing C or C++</li>\n<li>Proficiency in at least one scripting language (bash, perl, python, powershell, etc.)</li>\n<li>Experience with development of custom toolsets when necessary</li>\n<li>Strong Windows system administration and security assessment skills</li>\n<li>Familiarity with auditing techniques for MSRPC and ActiveX interfaces</li>\n<li>Familiarity with historical vulnerabilities in common operating systems (Windows, Solaris, Linux)</li>\n<li>Excellent understanding of secure data storage and transport implementations (PGP/SSH/SSL/IPSEC/etc.)</li>\n<li>Good understanding of low level TCP/IP networking and common protocols such as RADIUS, LDAP, KERBEROS, etc. </li>\n<li>Good understanding of secure network design</li>\n<li>Experience analyzing network traffic captures using tools such as tcpdump, wireshark, etc.</li>\n</ul>\n\n<p><strong>Required Non-Technical Skills:</strong></p>\n\n<ul>\n<li>Excellent analytical and problem solving skills</li>\n<li>Fast learner and interested in keeping current with research in the industry</li>\n<li>Work well in a small team, collaborative environment </li>\n<li>Good &quot;security instincts&quot;</li>\n<li>Ability to communicate complicated technical issues and the risks they pose to R&amp;D programmers, network engineers, system administrators and management</li>\n<li>Ability to conduct a security assessment from start to finish with minimal assistance</li>\n<li>Help programmers/administrators to develop fixes for issues discovered</li>\n<li>Put security risks in context in order to help meet business goals</li>\n</ul>\n\n<p><strong>Desired Skills:</strong></p>\n\n<ul>\n<li>Experience participating as a member of a red team</li>\n<li>Experience working with BMC Bladelogic and HP Openview</li>\n<li>Proficiency in using IDA Pro, Ollydbg/Immdbg, Windbg and/or other software analysis/debugging tools</li>\n<li>Proficiency in reading at least one dialect of assembly</li>\n<li>Familiarity with modern malware </li>\n</ul>\n\n<p><strong>The Company:</strong></p>\n\n<p>Bloomberg, the global business and financial information and news leader, gives influential decision makers a critical edge by connecting them to a dynamic network of information, people and ideas. The company&#39;s strength - delivering data, news and analytics through innovative technology, quickly and accurately - is at the core of the Bloomberg Professional service, which provides real time financial information to more than 315,000 subscribers globally. Bloomberg&#39;s enterprise solutions build on the company&#39;s core strength, leveraging technology to allow customers to access, integrate, distribute and manage data and information across organizations more efficiently and effectively. Through Bloomberg Law, Bloomberg Government, Bloomberg New Energy Finance and Bloomberg BNA, the company provides data, news and analytics to decision makers in industries beyond finance. And Bloomberg News, delivered through the Bloomberg Professional service, television, radio, mobile, the Internet and three magazines, Bloomberg Businessweek, Bloomberg Markets and Bloomberg Pursuits, covers the world with more than 2,400 news and multimedia professionals at more than 150 bureaus in 73 countries. Headquartered in New York, Bloomberg employs more than 15,000 people in 192 locations around the world.</p>\n\n<p>Bloomberg is an equal opportunities employer and we welcome applications from all backgrounds regardless of race, colour, religion, sex, ancestry, age, marital status, sexual orientation, gender identity, disability or any other classification protected by law.</p>\n",
      "how_to_apply":"<p><a href=\"http://goo.gl/bVbfra\">http://goo.gl/bVbfra</a></p>\n",
      "company":"Bloomberg L.P.",
      "company_url":"http://www.bloomberg.com",
      "company_logo":"http://github-jobs.s3.amazonaws.com/c5aaff4e-7f55-11e3-8555-d029b7deaa73.jpg",
      "url":"http://jobs.github.com/positions/cd87fa3c-7f55-11e3-967f-967ee3c991db"
   },
   {  
      "id":"dd2bf9ce-cde4-11e3-9c68-8a70a86372bb",
      "created_at":"Sun Aug 31 08:20:59 UTC 2014",
      "title":"Big Data Analytics Middleware Developer",
      "location":"New York, NY",
      "type":"Full Time",
      "description":"<p><strong>The Role:</strong></p>\n\n<p>Bloomberg is looking for a software developer who has experience in interactive analytics over Big Data to assist in the design and development of Bloomberg&#39;s Data Model and Query Platform. The goal is to structure data in forms that make it amenable for analysis and to provide a framework that enables interactive analytics over this data. This is a unique opportunity to join a talented group of engineers in start-up like environment, working with cutting-edge technologies on a greenfield project. In addition, this developer will serve as a liaison with the open source community directing the future evolution of the technology in ways that will benefit Bloomberg.</p>\n\n<p><strong>Big Data Experience Required:</strong></p>\n\n<ul>\n<li>Passion and interest for all things distributed - file systems, databases and computational frameworks</li>\n<li>A strong background in interactive query processing is a must; you can speak to the shortcomings of the map-reduce paradigm when it comes to interactive and iterative analytics and have thought of ways to overcome it.</li>\n<li>Hands on programming and development experience; excellent problem solving skills; proven technical leadership and communication skills</li>\n<li>Have a solid track record building large scale, fault-tolerant systems over the whole lifecycle of the project; you have spent significant time and effort observing large-scale systems in production and learning from it.</li>\n<li>Strong understanding of how the various technical pieces fit together: you can explain why you made certain architectural/design decisions and chose certain tools/products. </li>\n<li>Have made active contributions to open source projects like Hadoop, Berkeley Spark/Shark or Cassandra.</li>\n</ul>\n\n<p><strong>Technical Stack Required:</strong></p>\n\n<ul>\n<li>5+ years of programming experience (Java and Python on Linux)</li>\n<li>2+ years of hands-on experience with key-value store technologies such as HBase and/or Cassandra.</li>\n<li>2+ years of experience with the Hadoop stack - MapReduce, Cascading or Pig.</li>\n<li>1+ years of experience with analytic frameworks such as Impala, Phoenix (for HBase) and the Berkeley Analytics stack (Spark/Shark)</li>\n<li>Experience with data analysis in Python using frameworks such as Pandas and NumPy is a very strong plus.</li>\n<li>Prior experience with query processing in a distributed RDBMS such as Aster Data or Vertica is a plus.</li>\n</ul>\n\n<p><strong>The Company:</strong></p>\n\n<p>Bloomberg, the global business and financial information and news leader, gives influential decision makers a critical edge by connecting them to a dynamic network of information, people and ideas. The company&#39;s strength - delivering data, news and analytics through innovative technology, quickly and accurately - is at the core of the Bloomberg Professional service, which provides real time financial information to more than 315,000 subscribers globally. Bloomberg&#39;s enterprise solutions build on the company&#39;s core strength, leveraging technology to allow customers to access, integrate, distribute and manage data and information across organizations more efficiently and effectively. Through Bloomberg Law, Bloomberg Government, Bloomberg New Energy Finance and Bloomberg BNA, the company provides data, news and analytics to decision makers in industries beyond finance. And Bloomberg News, delivered through the Bloomberg Professional service, television, radio, mobile, the Internet and three magazines, Bloomberg Businessweek, Bloomberg Markets and Bloomberg Pursuits, covers the world with more than 2,400 news and multimedia professionals at more than 150 bureaus in 73 countries. Headquartered in New York, Bloomberg employs more than 15,000 people in 192 locations around the world.</p>\n\n<p>Bloomberg is an equal opportunities employer and we welcome applications from all backgrounds regardless of race, colour, religion, sex, ancestry, age, marital status, sexual orientation, gender identity, disability or any other classification protected by law.</p>\n",
      "how_to_apply":"<p>To Apply: <a href=\"http://goo.gl/5ZtMHI\">http://goo.gl/5ZtMHI</a></p>\n",
      "company":"Bloomberg L.P.",
      "company_url":"http://www.bloomberg.com",
      "company_logo":"http://github-jobs.s3.amazonaws.com/d33bffe0-cde4-11e3-818c-3e018090fdf7.jpg",
      "url":"http://jobs.github.com/positions/dd2bf9ce-cde4-11e3-9c68-8a70a86372bb"
   },
   {  
      "id":"f5fe9764-2e28-11e4-8258-73babcb423dd",
      "created_at":"Wed Aug 27 20:31:15 UTC 2014",
      "title":"Quality Assurance Analyst/Engineer",
      "location":"NYC, New York",
      "type":"Full Time",
      "description":"<p>Control Group is a privately held creative technology services firm. Whether improving or creating a product, service, or space, we help our visionary clients create more valuable and profitable connections with their stakeholders across digital and physical touchpoints.</p>\n\n<p>Based in New York City, Control Group has a full-stack of expertise, ranging from business consulting, user-experience design, software development, and engineering. Our clients include leaders in Civic, Real Estate Development, Technology, Hospitality, Institutional, and Retail industries.</p>\n\n<p>We are seeking a Quality Assurance Analyst/Engineer to join our team.</p>\n\n<p>At Control Group we believe that Quality Control starts when the project starts, not when the developers are finished. Quality Control Engineers are part of every project\u2019s core team from beginning to end. The Quality Control Engineer is responsible for:</p>\n\n<ol>\n<li> Participating in sprint planning meetings and daily standup meetings</li>\n<li> Planning the testing strategies and methods for projects, customizing the testing as needed</li>\n<li> Implementing tests</li>\n<li> Insuring overall excellence in all products we release</li>\n</ol>\n\n<p>Our application development group works mostly in PHP5 with Yii, Ruby on Rails 3 (also JRuby), iOS, and Android. We also hack on Node, Flex, JS, Java, HTML5, Cinder, sensor-based, and physical computing platforms.</p>\n\n<p>We work in a \u201cScrumBan\u201d style, collaborate intensely with clients, and all act as full-suite product tinkerers\u2014 from quality control to coders to designers to product managers to DevOPs. We believe in TDD/BDD and we make sure our CI stays green. We\u2019re obsessed with high quality and a great user experience. We\u2019re looking for Quality Control Engineers who don\u2019t want to just make sure it isn\u2019t broken, but want to make sure it\u2019s the best of its kind.</p>\n\n<p>Primary Job Responsibilities</p>\n\n<p>TESTING</p>\n\n<ul>\n<li>Test products to ensure that they meet requirements, conform to design specifications, and perform according to quality standards, including:</li>\n<li>Create, run and manage load, functional, and stress testing of new product features and products</li>\n<li>Regression testing of existing functionality</li>\n<li>Plan, write, execute, review, and update test plans, test cases, and scenarios to ensure that software meets or exceeds specified standards, development specifications, and client requirements</li>\n<li>All varieties of testing, including manual, automated, front-end, and back-end</li>\n<li>Report bugs and track status through a resolution system</li>\n<li>Build and maintain test tools and test applications to perform functional, load, and performance testing</li>\n<li>Work closely with other QC Engineers, Developers, Designers, DevOps, and Product Owners to ensure we deliver quality products to clients</li>\n<li>Act as a client and/or user advocate when appropriate and treat every project like it&#39;s your own. At Control Group, QC is not just about confirming that the user can use it, but also about making sure the user would want to use it</li>\n<li>Provide lower-cost, lower-risk, higher value, or other improving alternatives to proposed solutions</li>\n<li>Think strategically and share strategic insights with Product Owner, Scrum Master, and team</li>\n<li>Be awesome</li>\n</ul>\n\n<p>PERFORMANCE METRICS\nSuccess will be measured by:</p>\n\n<ul>\n<li>Quality of products</li>\n<li>Contributions to testing tool suite</li>\n<li>Happiness of clients and partners</li>\n</ul>\n\n<p>QUALIFICATIONS\nEligible candidates should possess more than a few of the following:</p>\n\n<ul>\n<li>Excellent written and oral communication skills. Really. R\u00e9sum\u00e9s with poor grammar, spelling, or punctuation will not be considered</li>\n<li>College degree. Computer Science, HCI, or Information Management are good, but not required</li>\n<li>5+ years as a Quality Control professional, or 2+ years in Quality Control along with 3+ year in another technical postion (e.g., Sysadmin, Engineer, Architect, etc</li>\n<li>Demonstrable web, mobile, embedded, or physical installation project experience</li>\n<li>GitHub (or similar) account for code review of patches and projects</li>\n<li>A good reputation and references in prior engagements</li>\n<li>Experience with at least a few of the following: PHP &amp; Yii; (J)Ruby &amp; Rails, Python &amp; Django, iOS, Cocoa, Android, HTML, CSS, JQuery, Flex, or Node.js</li>\n<li>Experience with automated testing tools such as XUnit, SoapUI, Selenium, Watij, Watir</li>\n<li>Understanding and appreciation of adatpive development methods (agile and lean)</li>\n<li>Experience with LINUX command-line environments (preferred)</li>\n<li>Superior organizational skills</li>\n<li>Strong analysis and autonomous problem discovery and solving skills.</li>\n<li>Strong attention to detail and a creative thinker</li>\n<li>Self-motivated (self-starter) and intellectually curious</li>\n<li>Ability to adapt and thrive in a dynamic environment, adjusting appropriately to changes to business, resource, or product priorities</li>\n</ul>\n\n<p>The job is NYC based, with minimal travel required (though we often have opportunities with large national and international clients). We would prefer not to relocate, and have zero interest in speaking with recruiters.</p>\n",
      "how_to_apply":"<p>Please Apply @ <a href=\"http://www.controlgroup.com/qa-analyst-engineer.html\">http://www.controlgroup.com/qa-analyst-engineer.html</a></p>\n",
      "company":"Control Group",
      "company_url":"http://www.controlgroup.com/index.html",
      "company_logo":"http://github-jobs.s3.amazonaws.com/e51bda06-2e28-11e4-8567-d8d86e13240d.png",
      "url":"http://jobs.github.com/positions/f5fe9764-2e28-11e4-8258-73babcb423dd"
   }
]

using the following class definition:

    public class Job
    {
        public string id { get; set; }
        public string created_at { get; set; }
        public string title { get; set; }
        public string location { get; set; }
        public string type { get; set; }
        public string description { get; set; }
        public string how_to_apply { get; set; }
        public string company { get; set; }
        public string company_url { get; set; }
        public string company_logo { get; set; }
        public string url { get; set; }
    }

I receive wrong object, found differences:

Begin Differences (3 differences):
Types [String,String], Item Expected[1].description != Actual[1].description, Values (<p><a href='http://www.jobscore.com/jobs/crowdtwist/list'><img src='https://jobscore-assets.s3.amazonaws.com/account_logos/logo_b6dSPiUVer44qIiGak6IKg.png' /></a><br /><p><strong>About Us:</strong></p><p>CrowdTwist is an industry-leading provider of comprehensive multichannel loyalty and analytics solutions that drive engagement and incremental spend, leading to better customer data, stronger insight, and more personalized experiences. We are revolutionizing loyalty, helping top brands including Pepsi, Nestlรฉ Purina, L&#39;oreal, and Zumiez develop a deeper understanding of customers.</p><p><strong>About the Role:</strong></p><p>CrowdTwist is seeking a Senior Software Engineer for our growing Professional Services team based in New York City.ย  In this role, you will work directly with our clients in supporting their loyalty programs and integrations with the CrowdTwist platform. ย You will also assist by helping our clients bring new loyalty programs to life.</p><p>You will work directly with our Client Success team to ensure that our clients are making the most of the CrowdTwist platform. ย Your work will span many areas of the CrowdTwist platform, including but not limited to:</p><ul>    <li>The consumer-facing loyalty program experience</li> <li>Our RESTful APIs</li>   <li>Back end integrations with social networks (Facebook, Twitter, Instagram, and Foursquare)</li>  <li>Our data-driven, client-customizable JavaScript SDK</li>    <li>Our client-facing content management applications</li></ul><p>Your work will likely be featured in television, print, consumer goods packaging, and online media. ย The Professional Services team offers a fast-paced, high-energy environment that will surely keep you sharp and on your toes on a daily basis. ย This role is for an engineer who loves to roll up their sleeves, dive in, and tackle any problem with speed and precision. ย As the senior-most engineer on the Professional Services team, you will naturally gain authority over time, ultimately helping lead and mentor other engineers within the team.</p><p>In this role, you will work with a broad back end tech stack, including but not limited to:</p><ul> <li>PHP</li>    <li>Java</li>   <li>Oracle</li> <li>Node.js</li>    <li>Redis</li>  <li>Amazon Web Services</li>    <li>Various third-party services (Twilio, SendGrid, EdgeCast, etc.)</li></ul><p><strong>You:</strong></p><ul>   <li>Have a college degree in Computer Science or equivalent experience</li> <li>Have 7+ years of professional experience with one or more of: PHP, Ruby, Python, Java, C, C++</li>  <li>Know your way around a relational and/or NoSQL database</li>    <li>Write great code, view it as a craft, and love cranking out solid work</li></ul><p>At over one million lines of code, you'll be working with a large, highly-trafficked, scalable application. ย Quality is of extreme importance to us, so you'll be writing unit and integration tests, which are used in our continuous integration process. ย Our QA team will show you no mercy, eitherย - bring your "A&quot; game.</p><p>You should be back end-focused, but our front end tech stack covers a wide range of JavaScript frameworks and related tools, such as:</p><ul>    <li>Angular</li>    <li>CoffeeScript</li>   <li>Backbone</li>   <li>Marionette</li> <li>Jade</li>   <li>Sass</li>   <li>jQuery</li></ul><p>Bonus points for front end development and systems administration experience.</p><p>We have a fun, generous company culture that&#39;s built on our fundamental principle that when you give more, you get more:</p><ul> <li>We offer a generous employee benefits package including stock options, fully paid medical, dental and vision plans for employees and their dependents</li>  <li>We bring toys to the office but still think the most fun thing to do is build product</li>  <li>We love getting to know one another outside the office through CrowdTwist sponsored events (volleyball and dodgeball teams, high speed go-karting, bowling, paintball, happy hour, etc.)</li>   <li>Provide lunches, drinks and snacks so our team can be hungry for other things</li>  <li>Learn from and teach each other at CrowdTwist U</li>    <li>Try to say what we mean and mean what we say</li></ul><p>If this sounds like you, get in touch. We&#39;re cool, relaxed, experienced, hard driving, changing our industry and looking for smart people like yourself to help tackle tough technical challenges.</p><p>This is a full-time position based in our New York City office. ย Relocation assistance will be available if needed.</p><p>Take a peek inside our office here:ย  <a href="https://www.themuse.com/companies/crowdtwist">CrowdTwist Office</a></p> <img src="https://www.applytracking.com/track.aspx/5b0v1"/></p>
,<p><a href='http://www.jobscore.com/jobs/crowdtwist/list'><img src='https://jobscore-assets.s3.amazonaws.com/account_logos/logo_b6dSPiUVer44qIiGak6IKg.png' /></a><br /><p><strong>About Us:</strong></p><p>CrowdTwist is an industry-leading provider of comprehensive multichannel loyalty and analytics solutions that drive engagement and incremental spend, leading to better customer data, stronger insight, and more personalized experiences. We are revolutionizing loyalty, helping top brands including Pepsi, Nestlรฉ00e9 Purina, L&#39;oreal, and Zumiez develop a deeper understanding of customers.</p><p><strong>About the Role:</strong></p><p>CrowdTwist is seeking a Senior Software Engineer for our growing Professional Services team based in New York City.ย 00a0 In this role, you will work directly with our clients in supporting their loyalty programs and integrations with the CrowdTwist platform. ย 00a0You will also assist by helping our clients bring new loyalty programs to life.</p><p>You will work directly with our Client Success team to ensure that our clients are making the most of the CrowdTwist platform. ย 00a0Your work will span many areas of the CrowdTwist platform, including but not limited to:</p><ul>    <li>The consumer-facing loyalty program experience</li> <li>Our RESTful APIs</li>   <li>Back end integrations with social networks (Facebook, Twitter, Instagram, and Foursquare)</li>  <li>Our data-driven, client-customizable JavaScript SDK</li>    <li>Our client-facing content management applications</li></ul><p>Your work will likely be featured in television, print, consumer goods packaging, and online media. ย 00a0The Professional Services team offers a fast-paced, high-energy environment that will surely keep you sharp and on your toes on a daily basis. ย 00a0This role is for an engineer who loves to roll up their sleeves, dive in, and tackle any problem with speed and precision. ย 00a0As the senior-most engineer on the Professional Services team, you will naturally gain authority over time, ultimately helping lead and mentor other engineers within the team.</p><p>In this role, you will work with a broad back end tech stack, including but not limited to:</p><ul> <li>PHP</li>    <li>Java</li>   <li>Oracle</li> <li>Node.js</li>    <li>Redis</li>  <li>Amazon Web Services</li>    <li>Various third-party services (Twilio, SendGrid, EdgeCast, etc.)</li></ul><p><strong>You:</strong></p><ul>   <li>Have a college degree in Computer Science or equivalent experience</li> <li>Have 7+ years of professional experience with one or more of: PHP, Ruby, Python, Java, C, C++</li>  <li>Know your way around a relational and/or NoSQL database</li>    <li>Write great code, view it as a craft, and love cranking out solid work</li></ul><p>At over one million lines of code, you'2019ll be working with a large, highly-trafficked, scalable application. ย 00a0Quality is of extreme importance to us, so you'2019ll be writing unit and integration tests, which are used in our continuous integration process. ย 00a0Our QA team will show you no mercy, eitherย 00a0-2014 bring your "201cA&quot; game.</p><p>You should be back end-focused, but our front end tech stack covers a wide range of JavaScript frameworks and related tools, such as:</p><ul>    <li>Angular</li>    <li>CoffeeScript</li>   <li>Backbone</li>   <li>Marionette</li> <li>Jade</li>   <li>Sass</li>   <li>jQuery</li></ul><p>Bonus points for front end development and systems administration experience.</p><p>We have a fun, generous company culture that&#39;s built on our fundamental principle that when you give more, you get more:</p><ul> <li>We offer a generous employee benefits package including stock options, fully paid medical, dental and vision plans for employees and their dependents</li>  <li>We bring toys to the office but still think the most fun thing to do is build product</li>  <li>We love getting to know one another outside the office through CrowdTwist sponsored events (volleyball and dodgeball teams, high speed go-karting, bowling, paintball, happy hour, etc.)</li>   <li>Provide lunches, drinks and snacks so our team can be hungry for other things</li>  <li>Learn from and teach each other at CrowdTwist U</li>    <li>Try to say what we mean and mean what we say</li></ul><p>If this sounds like you, get in touch. We&#39;re cool, relaxed, experienced, hard driving, changing our industry and looking for smart people like yourself to help tackle tough technical challenges.</p><p>This is a full-time position based in our New York City office. ย 00a0Relocation assistance will be available if needed.</p><p>Take a peek inside our office here:ย 00a0 <a href="https://www.themuse.com/companies/crowdtwist">CrowdTwist Office</a></p> <img src="https://www.applytracking.com/track.aspx/5b0v1"/></p>
)
Types [String,String], Item Expected[2].description != Actual[2].description, Values (<p>Signpost is making it easier for local businesses to find new customers and keep them coming back. Our software-as-a-service platform automates the myriad tasks required to effectively market a small business online, freeing owners to focus on what they do best. We're backed by some of the smartest investors out there, like Google Ventures and Spark Capital, and our product is taking off, being used by thousands of businesses nationwide.</p>

<p>Our <a href="http://www.signpost.com/engineering">engineering team</a> is growing rapidly and we're looking for our next generation of technical leaders. Our culture is collaborative and emphasizes continuous improvement of ourselves, our systems, and our organization. If you're ready to join an outstanding and passionate team of engineers - not hackers - at a fast-moving startup where you can learn, grow, and have real technical ownership, you've come to the right place.</p>

<p>As a senior engineer, you'll be working on extending, improving and scaling systems and applications built primarily in Node.js. While we're not expecting you to be a Node expert when you walk in the door, we will expect you to:</p>

<ul>
<li>Work closely with product managers to define, scope, refine and drive the implementation of new features from conception to release</li>
<li>Assist, lead and mentor junior engineers, making sure to be an available resource and play an active role in their professional development</li>
<li>Perform diligent, timely code reviews for your peers and subordinates, while taking their feedback as an opportunity to learn and improve</li>
<li>Architect systems for fault-tolerance, correctness, security and availability</li>
<li>Participate in our interview process to select and attract outstanding talent</li>
<li>Help engineering leadership to constantly improve</li>
<li>Exemplify our culture of technical excellence</li>
</ul>

<p>You should:</p>

<ul>
<li>Have well-honed technical problem solving and analytical skills</li>
<li>Be proficient in several high-level languages like Python, Ruby, Java, or C++</li>
<li>Have a strong command of CS fundamentals - even if you don't use it every day</li>
<li>Be able to articulate technical concepts clearly and concisely</li>
<li>Have a solid mastery of software engineering tools and best practices</li>
<li>Thoroughly understand persistence and networking concepts and technologies</li>
<li>Have a deep mistrust of code without adequate test coverage</li>
<li>Appreciate agility and pragmatism in software development</li>
<li>Thrive in a startup environment - where we're making it up as we go</li>
<li>Genuinely enjoy coaching and mentoring junior engineers</li>
<li>Want to build a great product and love your job</li>
<li>Be a team player with a can-do attitude</li>
</ul>

<p>We would love you to:</p>

<ul>
<li>Have an unquenchable thirst for new knowledge</li>
<li>Always be striving to take your skills to the next level</li>
<li>Understand how your code works down to the silicon</li>
<li>Know that building secure systems is an endless battle</li>
<li>Know that investing in developing solid tests pays for itself quickly</li>
<li>Know that the root of all evil isn&#39;t love of money, it's premature optimization</li>
<li>Be active in the open source community (send us your GitHub handle or tech blog)</li>
</ul>

<p>About Signpost</p>

<p>Signpost gives local businesses the power to effortlessly build and manage customer relationships. Our platform automates and tracks all essential, cost-effective marketing interactions to deliver a positive, measurable return on investment. By providing comprehensive customer data and saving business owners time reaching new and existing customers with the right message at the right time, Signpost increases new and repeat sales.</p>

<ul>
<li>$15M funding (Google Ventures, Spark Capital, Scout Ventures, OpenView Ventures)</li>
<li>200 employees</li>
<li>Headquartered in New York with offices in Denver and Austin</li>
<li>Powering millions of customer interactions monthly</li>
<li>15% MoM revenue growth 2 years running</li>
<li>Named one of America&#39;s Most Promising Companies by Forbes Magazine</li>
</ul>
,<p>Signpost is making it easier for local businesses to find new customers and keep them coming back. Our software-as-a-service platform automates the myriad tasks required to effectively market a small business online, freeing owners to focus on what they do best. We'2019re backed by some of the smartest investors out there, like Google Ventures and Spark Capital, and our product is taking off, being used by thousands of businesses nationwide.</p>

<p>Our <a href="http://www.signpost.com/engineering">engineering team</a> is growing rapidly and we'2019re looking for our next generation of technical leaders. Our culture is collaborative and emphasizes continuous improvement of ourselves, our systems, and our organization. If you'2019re ready to join an outstanding and passionate team of engineers - not hackers - at a fast-moving startup where you can learn, grow, and have real technical ownership, you'2019ve come to the right place.</p>

<p>As a senior engineer, you'2019ll be working on extending, improving and scaling systems and applications built primarily in Node.js. While we'2019re not expecting you to be a Node expert when you walk in the door, we will expect you to:</p>

<ul>
<li>Work closely with product managers to define, scope, refine and drive the implementation of new features from conception to release</li>
<li>Assist, lead and mentor junior engineers, making sure to be an available resource and play an active role in their professional development</li>
<li>Perform diligent, timely code reviews for your peers and subordinates, while taking their feedback as an opportunity to learn and improve</li>
<li>Architect systems for fault-tolerance, correctness, security and availability</li>
<li>Participate in our interview process to select and attract outstanding talent</li>
<li>Help engineering leadership to constantly improve</li>
<li>Exemplify our culture of technical excellence</li>
</ul>

<p>You should:</p>

<ul>
<li>Have well-honed technical problem solving and analytical skills</li>
<li>Be proficient in several high-level languages like Python, Ruby, Java, or C++</li>
<li>Have a strong command of CS fundamentals - even if you don'2019t use it every day</li>
<li>Be able to articulate technical concepts clearly and concisely</li>
<li>Have a solid mastery of software engineering tools and best practices</li>
<li>Thoroughly understand persistence and networking concepts and technologies</li>
<li>Have a deep mistrust of code without adequate test coverage</li>
<li>Appreciate agility and pragmatism in software development</li>
<li>Thrive in a startup environment - where we'2019re making it up as we go</li>
<li>Genuinely enjoy coaching and mentoring junior engineers</li>
<li>Want to build a great product and love your job</li>
<li>Be a team player with a can-do attitude</li>
</ul>

<p>We would love you to:</p>

<ul>
<li>Have an unquenchable thirst for new knowledge</li>
<li>Always be striving to take your skills to the next level</li>
<li>Understand how your code works down to the silicon</li>
<li>Know that building secure systems is an endless battle</li>
<li>Know that investing in developing solid tests pays for itself quickly</li>
<li>Know that the root of all evil isn&#39;t love of money, it'2019s premature optimization</li>
<li>Be active in the open source community (send us your GitHub handle or tech blog)</li>
</ul>

<p>About Signpost</p>

<p>Signpost gives local businesses the power to effortlessly build and manage customer relationships. Our platform automates and tracks all essential, cost-effective marketing interactions to deliver a positive, measurable return on investment. By providing comprehensive customer data and saving business owners time reaching new and existing customers with the right message at the right time, Signpost increases new and repeat sales.</p>

<ul>
<li>$15M funding (Google Ventures, Spark Capital, Scout Ventures, OpenView Ventures)</li>
<li>200 employees</li>
<li>Headquartered in New York with offices in Denver and Austin</li>
<li>Powering millions of customer interactions monthly</li>
<li>15% MoM revenue growth 2 years running</li>
<li>Named one of America&#39;s Most Promising Companies by Forbes Magazine</li>
</ul>
)
Types [String,String], Item Expected[5].description != Actual[5].description, Values (<p>Control Group is a privately held creative technology services firm. Whether improving or creating a product, service, or space, we help our visionary clients create more valuable and profitable connections with their stakeholders across digital and physical touchpoints.</p>

<p>Based in New York City, Control Group has a full-stack of expertise, ranging from business consulting, user-experience design, software development, and engineering. Our clients include leaders in Civic, Real Estate Development, Technology, Hospitality, Institutional, and Retail industries.</p>

<p>We are seeking a Quality Assurance Analyst/Engineer to join our team.</p>

<p>At Control Group we believe that Quality Control starts when the project starts, not when the developers are finished. Quality Control Engineers are part of every project's core team from beginning to end. The Quality Control Engineer is responsible for:</p>

<ol>
<li> Participating in sprint planning meetings and daily standup meetings</li>
<li> Planning the testing strategies and methods for projects, customizing the testing as needed</li>
<li> Implementing tests</li>
<li> Insuring overall excellence in all products we release</li>
</ol>

<p>Our application development group works mostly in PHP5 with Yii, Ruby on Rails 3 (also JRuby), iOS, and Android. We also hack on Node, Flex, JS, Java, HTML5, Cinder, sensor-based, and physical computing platforms.</p>

<p>We work in a "ScrumBan" style, collaborate intensely with clients, and all act as full-suite product tinkerers- from quality control to coders to designers to product managers to DevOPs. We believe in TDD/BDD and we make sure our CI stays green. We're obsessed with high quality and a great user experience. We're looking for Quality Control Engineers who don't want to just make sure it isn't broken, but want to make sure it's the best of its kind.</p>

<p>Primary Job Responsibilities</p>

<p>TESTING</p>

<ul>
<li>Test products to ensure that they meet requirements, conform to design specifications, and perform according to quality standards, including:</li>
<li>Create, run and manage load, functional, and stress testing of new product features and products</li>
<li>Regression testing of existing functionality</li>
<li>Plan, write, execute, review, and update test plans, test cases, and scenarios to ensure that software meets or exceeds specified standards, development specifications, and client requirements</li>
<li>All varieties of testing, including manual, automated, front-end, and back-end</li>
<li>Report bugs and track status through a resolution system</li>
<li>Build and maintain test tools and test applications to perform functional, load, and performance testing</li>
<li>Work closely with other QC Engineers, Developers, Designers, DevOps, and Product Owners to ensure we deliver quality products to clients</li>
<li>Act as a client and/or user advocate when appropriate and treat every project like it&#39;s your own. At Control Group, QC is not just about confirming that the user can use it, but also about making sure the user would want to use it</li>
<li>Provide lower-cost, lower-risk, higher value, or other improving alternatives to proposed solutions</li>
<li>Think strategically and share strategic insights with Product Owner, Scrum Master, and team</li>
<li>Be awesome</li>
</ul>

<p>PERFORMANCE METRICS
Success will be measured by:</p>

<ul>
<li>Quality of products</li>
<li>Contributions to testing tool suite</li>
<li>Happiness of clients and partners</li>
</ul>

<p>QUALIFICATIONS
Eligible candidates should possess more than a few of the following:</p>

<ul>
<li>Excellent written and oral communication skills. Really. Rรฉsumรฉs with poor grammar, spelling, or punctuation will not be considered</li>
<li>College degree. Computer Science, HCI, or Information Management are good, but not required</li>
<li>5+ years as a Quality Control professional, or 2+ years in Quality Control along with 3+ year in another technical postion (e.g., Sysadmin, Engineer, Architect, etc</li>
<li>Demonstrable web, mobile, embedded, or physical installation project experience</li>
<li>GitHub (or similar) account for code review of patches and projects</li>
<li>A good reputation and references in prior engagements</li>
<li>Experience with at least a few of the following: PHP &amp; Yii; (J)Ruby &amp; Rails, Python &amp; Django, iOS, Cocoa, Android, HTML, CSS, JQuery, Flex, or Node.js</li>
<li>Experience with automated testing tools such as XUnit, SoapUI, Selenium, Watij, Watir</li>
<li>Understanding and appreciation of adatpive development methods (agile and lean)</li>
<li>Experience with LINUX command-line environments (preferred)</li>
<li>Superior organizational skills</li>
<li>Strong analysis and autonomous problem discovery and solving skills.</li>
<li>Strong attention to detail and a creative thinker</li>
<li>Self-motivated (self-starter) and intellectually curious</li>
<li>Ability to adapt and thrive in a dynamic environment, adjusting appropriately to changes to business, resource, or product priorities</li>
</ul>

<p>The job is NYC based, with minimal travel required (though we often have opportunities with large national and international clients). We would prefer not to relocate, and have zero interest in speaking with recruiters.</p>
,<p>Control Group is a privately held creative technology services firm. Whether improving or creating a product, service, or space, we help our visionary clients create more valuable and profitable connections with their stakeholders across digital and physical touchpoints.</p>

<p>Based in New York City, Control Group has a full-stack of expertise, ranging from business consulting, user-experience design, software development, and engineering. Our clients include leaders in Civic, Real Estate Development, Technology, Hospitality, Institutional, and Retail industries.</p>

<p>We are seeking a Quality Assurance Analyst/Engineer to join our team.</p>

<p>At Control Group we believe that Quality Control starts when the project starts, not when the developers are finished. Quality Control Engineers are part of every project'2019s core team from beginning to end. The Quality Control Engineer is responsible for:</p>

<ol>
<li> Participating in sprint planning meetings and daily standup meetings</li>
<li> Planning the testing strategies and methods for projects, customizing the testing as needed</li>
<li> Implementing tests</li>
<li> Insuring overall excellence in all products we release</li>
</ol>

<p>Our application development group works mostly in PHP5 with Yii, Ruby on Rails 3 (also JRuby), iOS, and Android. We also hack on Node, Flex, JS, Java, HTML5, Cinder, sensor-based, and physical computing platforms.</p>

<p>We work in a "201cScrumBan"201d style, collaborate intensely with clients, and all act as full-suite product tinkerers-2014 from quality control to coders to designers to product managers to DevOPs. We believe in TDD/BDD and we make sure our CI stays green. We'2019re obsessed with high quality and a great user experience. We'2019re looking for Quality Control Engineers who don'2019t want to just make sure it isn'2019t broken, but want to make sure it'2019s the best of its kind.</p>

<p>Primary Job Responsibilities</p>

<p>TESTING</p>

<ul>
<li>Test products to ensure that they meet requirements, conform to design specifications, and perform according to quality standards, including:</li>
<li>Create, run and manage load, functional, and stress testing of new product features and products</li>
<li>Regression testing of existing functionality</li>
<li>Plan, write, execute, review, and update test plans, test cases, and scenarios to ensure that software meets or exceeds specified standards, development specifications, and client requirements</li>
<li>All varieties of testing, including manual, automated, front-end, and back-end</li>
<li>Report bugs and track status through a resolution system</li>
<li>Build and maintain test tools and test applications to perform functional, load, and performance testing</li>
<li>Work closely with other QC Engineers, Developers, Designers, DevOps, and Product Owners to ensure we deliver quality products to clients</li>
<li>Act as a client and/or user advocate when appropriate and treat every project like it&#39;s your own. At Control Group, QC is not just about confirming that the user can use it, but also about making sure the user would want to use it</li>
<li>Provide lower-cost, lower-risk, higher value, or other improving alternatives to proposed solutions</li>
<li>Think strategically and share strategic insights with Product Owner, Scrum Master, and team</li>
<li>Be awesome</li>
</ul>

<p>PERFORMANCE METRICS
Success will be measured by:</p>

<ul>
<li>Quality of products</li>
<li>Contributions to testing tool suite</li>
<li>Happiness of clients and partners</li>
</ul>

<p>QUALIFICATIONS
Eligible candidates should possess more than a few of the following:</p>

<ul>
<li>Excellent written and oral communication skills. Really. Rรฉ00e9sumรฉ00e9s with poor grammar, spelling, or punctuation will not be considered</li>
<li>College degree. Computer Science, HCI, or Information Management are good, but not required</li>
<li>5+ years as a Quality Control professional, or 2+ years in Quality Control along with 3+ year in another technical postion (e.g., Sysadmin, Engineer, Architect, etc</li>
<li>Demonstrable web, mobile, embedded, or physical installation project experience</li>
<li>GitHub (or similar) account for code review of patches and projects</li>
<li>A good reputation and references in prior engagements</li>
<li>Experience with at least a few of the following: PHP &amp; Yii; (J)Ruby &amp; Rails, Python &amp; Django, iOS, Cocoa, Android, HTML, CSS, JQuery, Flex, or Node.js</li>
<li>Experience with automated testing tools such as XUnit, SoapUI, Selenium, Watij, Watir</li>
<li>Understanding and appreciation of adatpive development methods (agile and lean)</li>
<li>Experience with LINUX command-line environments (preferred)</li>
<li>Superior organizational skills</li>
<li>Strong analysis and autonomous problem discovery and solving skills.</li>
<li>Strong attention to detail and a creative thinker</li>
<li>Self-motivated (self-starter) and intellectually curious</li>
<li>Ability to adapt and thrive in a dynamic environment, adjusting appropriately to changes to business, resource, or product priorities</li>
</ul>

<p>The job is NYC based, with minimal travel required (though we often have opportunities with large national and international clients). We would prefer not to relocate, and have zero interest in speaking with recruiters.</p>
)
End Differences (Maximum of 100 differences shown).

Is IDictionary<,> supported?

The code (on line 443, IsDictionaryType) seems to check for derivation from IDictionary or type equality to IDictionary`2 (is that even possible?); however, when it gets to actual writing (WriteDictionary), it uses the specific implementation (Dictionary<,>) on line 1221 (dictionary enumerator) and on line 1237.

So, does it support ConcurrentDictionary<,> or any other IDictionary (generic or not) for serialization?

P.S. Also, on line 1204 (WriteCollection), reusing isDict is possible.

Deserialized object is incorrect (Case #3)

When I deserialize the following JSON:

{
    "id": "5408a8fe87b96565151fd386",
    "index": 17,
    "guid": "76cbf5d2-7212-4586-9db6-a5c6bdac9c56",
    "isActive": false,
    "balance": "$3,143.46",
    "picture": "http://placehold.it/32x32",
    "age": 36,
    "eyeColor": "green",
    "name": "Craft Arnold",
    "gender": "male",
    "company": "ZOUNDS",
    "email": "[email protected]",
    "phone": "+1 (983) 535-2003",
    "address": "431 Rewe Street, Norwood, American Samoa, 7252",
    "about": "Laboris deserunt in culpa commodo anim est et officia enim adipisicing ea do. Occaecat consequat exercitation cupidatat commodo aliquip nulla officia tempor fugiat irure cupidatat. Proident sunt voluptate reprehenderit deserunt voluptate. Nulla et non consequat dolor. Dolore commodo in aliquip sint est non sit veniam duis reprehenderit culpa fugiat dolor sint. Magna sint labore mollit veniam elit mollit nulla minim aliqua.\r\n",
    "registered": "2014-06-22T09:40:21 -02:00",
    "latitude": 49.911697,
    "longitude": -6.562665,
    "tags": [
      "incididunt",
      "laborum",
      "proident",
      "quis",
      "do",
      "dolor",
      "reprehenderit"
    ],
    "friends": [
      {
        "id": 0,
        "name": "Maryann Rocha"
      },
      {
        "id": 1,
        "name": "Stevens Luna"
      },
      {
        "id": 2,
        "name": "Sanders Cantu"
      }
    ],
    "greeting": "Hello, Craft Arnold! You have 3 unread messages.",
    "favoriteFruit": "banana"
  }

using the following class definition:

    public class Row
    {
        public string id { get; set; }
        public int index { get; set; }
        public string guid { get; set; }
        public bool isActive { get; set; }
        public string balance { get; set; }
        public string picture { get; set; }
        public int age { get; set; }
        public string eyeColor { get; set; }
        public string name { get; set; }
        public string gender { get; set; }
        public string company { get; set; }
        public string email { get; set; }
        public string phone { get; set; }
        public string address { get; set; }
        public string about { get; set; }
        public string registered { get; set; }
        public string greeting { get; set; }
        public float latitude { get; set; }
        public float longitude { get; set; }
        public string favoriteFruit { get; set; }

        public string[] tags { get; set; }
        public Friend[] friends { get; set; }

        public class Friend
        {
            public int id { get; set; }
            public string name { get; set; }
        }
    }

I receive wrong object, found differences:

Begin Differences (8 differences):
Types [Single,Single], Item Expected.longitude != Actual.longitude, Values (-6,562665,6,562665)
Types [String[],String[]], Item Expected.tags.Count != Actual.tags.Count, Values (7,10)
Types [String,String], Item Expected.tags[1] != Actual.tags[1], Values (laborum,incididunt)
Types [String,String], Item Expected.tags[2] != Actual.tags[2], Values (proident,incididunt)
Types [String,String], Item Expected.tags[3] != Actual.tags[3], Values (quis,incididunt)
Types [String,String], Item Expected.tags[4] != Actual.tags[4], Values (do,incididunt)
Types [String,String], Item Expected.tags[5] != Actual.tags[5], Values (dolor,incididunt)
Types [String,String], Item Expected.tags[6] != Actual.tags[6], Values (reprehenderit,incididunt)
End Differences (Maximum of 100 differences shown).

Deserialized object is incorrect (Case #2)

When I deserialize the following JSON:

{"widget": {
    "debug": "on",
    "window": {
        "title": "Sample Konfabulator Widget",
        "name": "main_window",
        "width": 500,
        "height": 500
    },
    "image": { 
        "src": "Images/Sun.png",
        "name": "sun1",
        "hOffset": 250,
        "vOffset": 250,
        "alignment": "center"
    },
    "text": {
        "data": "Click Here",
        "size": 36,
        "style": "bold",
        "name": "text1",
        "hOffset": 250,
        "vOffset": 100,
        "alignment": "center",
        "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
    }
}}

I receive wrong object, found difference:

Begin Differences (1 differences):
Types [Int32,Int32], Item Expected.widget.window.height != Actual.widget.window.height, Values (500,496102224)
End Differences (Maximum of 100 differences shown).

internal type support?

Can we generate all types into the same assembly name (e.g. NetJsonEmitted) so we can mark InternalsVisiableTo from our assembly to that assembly?

Having to mark serialization types as public leaks those details into the public API of the assembly, which I'd like to avoid if possible.

Add support for .NET 4.0

There is something in this library that runs only on the .NET 4.5 and makes it incompatible with the .NET 4.0?

Error Serializing Properties With Private Setter

The following class serialized properly with NetJSON:

public class TestClass
{
  private string testProperty = "Test";

  public string TestProperty
  {
    get { return testProperty; }      
  }
}

These ones however throw error upon serialization:

System.TypeInitializationException : The type initializer for 'NetJSONCachedSerializer`1' threw an exception.
----> System.ArgumentNullException : Value cannot be null.
Parameter name: meth

public class TestClass
{
  private string testProperty = "Test";

  public string TestProperty
  {
    get { return testProperty; }      
    private set { testProperty = value; }
  }
}

public class TestClass
{
    public TestClass()
    {
      TestProperty = "Test";
    }
    public string TestProperty { get; private set; }
}

I believe you need to add null validation in NetJSON.cs:

if (prop.CanWrite && prop.GetSetMethod() != null)

or use the other overload of PropertyInfo.GetSetMethod that returns non-public setter

il.Emit(isTypeValueType ? OpCodes.Call : OpCodes.Callvirt, prop.GetSetMethod(true));

Note: I'm using the latest version Github.

Serialized JSON is incorrect (Case #4)

When I serialized the following C# instance:

            return new Row
            {
                id = "5408a8fe87b96565151fd386",
                index = 17,
                guid = "76cbf5d2-7212-4586-9db6-a5c6bdac9c56",
                isActive = false,
                balance = "$3,143.46",
                picture = "http://placehold.it/32x32",
                age = 36,
                eyeColor = "green",
                name = "Craft Arnold",
                gender = "male",
                company = "ZOUNDS",
                email = "[email protected]",
                phone = "+1 (983) 535-2003",
                address = "431 Rewe Street, Norwood, American Samoa, 7252",
                about = "Laboris deserunt in culpa commodo anim est et officia enim adipisicing ea do. Occaecat consequat exercitation cupidatat commodo aliquip nulla officia tempor fugiat irure cupidatat. Proident sunt voluptate reprehenderit deserunt voluptate. Nulla et non consequat dolor. Dolore commodo in aliquip sint est non sit veniam duis reprehenderit culpa fugiat dolor sint. Magna sint labore mollit veniam elit mollit nulla minim aliqua.\r\n",
                registered = "2014-06-22T09:40:21 -02:00",
                latitude = 49.911697,
                longitude = -6.562665,
                tags = new string[] { "incididunt", "laborum", "proident", "quis", "do", "dolor", "reprehenderit" },
                friends = new[] 
                { 
                    new Row.Friend{ id = 0, name = "Maryann Rocha"},
                    new Row.Friend{ id = 1, name = "Stevens Luna"},
                    new Row.Friend{ id = 2, name = "Sanders Cantu"}
                },
                greeting = "Hello, Craft Arnold! You have 3 unread messages.",
                favoriteFruit = "banana"
            };

using the following class definition:

    public class Row
    {
        public string id { get; set; }
        public int index { get; set; }
        public string guid { get; set; }
        public bool isActive { get; set; }
        public string balance { get; set; }
        public string picture { get; set; }
        public int age { get; set; }
        public string eyeColor { get; set; }
        public string name { get; set; }
        public string gender { get; set; }
        public string company { get; set; }
        public string email { get; set; }
        public string phone { get; set; }
        public string address { get; set; }
        public string about { get; set; }
        public string registered { get; set; }
        public string greeting { get; set; }
        public double latitude { get; set; }
        public double longitude { get; set; }
        public string favoriteFruit { get; set; }

        public string[] tags { get; set; }
        public Friend[] friends { get; set; }

        public class Friend
        {
            public int id { get; set; }
            public string name { get; set; }
        }
    }

I receive the following JSON:

{"id":"5408a8fe87b96565151fd386","index":17,"guid":"76cbf5d2-7212-4586-9db6-a5c6bdac9c56","balance":"$3,143.46","picture":"http://placehold.it/32x32","age":36,"eyeColor":"green","name":"Craft Arnold","gender":"male","company":"ZOUNDS","email":"[email protected]","phone":"+1 (983) 535-2003","address":"431 Rewe Street, Norwood, American Samoa, 7252","about":"Laboris deserunt in culpa commodo anim est et officia enim adipisicing ea do. Occaecat consequat exercitation cupidatat commodo aliquip nulla officia tempor fugiat irure cupidatat. Proident sunt voluptate reprehenderit deserunt voluptate. Nulla et non consequat dolor. Dolore commodo in aliquip sint est non sit veniam duis reprehenderit culpa fugiat dolor sint. Magna sint labore mollit veniam elit mollit nulla minim aliqua.\r\n","registered":"2014-06-22T09:40:21 -02:00","greeting":"Hello, Craft Arnold! You have 3 unread messages.","latitude":49,911697,"longitude":-6,562665,"favoriteFruit":"banana","tags":["incididunt","laborum","proident","quis","do","dolor","reprehenderit"],"friends":[{,"name":"Maryann Rocha"},{"id":1,"name":"Stevens Luna"},{"id":2,"name":"Sanders Cantu"}]}

The fields latitude and longitude contains ',' instead of '.'.
The specification requires dot. I use Polish regional settings.

The friends array is corrupted. The first item doesn't contain id.

Exception while trying to deserialize ExpandoObject.

Hi,

The extension method Type.IsDictionaryType() doesn't appear to recognise instances of ExpandoObject. Which implements IDictionary<string, object>. I'm seeing this error when trying to deserialize:

{"Type System.Dynamic.ExpandoObject must be a validate dictionary type such as IDictionary<Key,Value>"}

Thanks.

Deserialization throws exception

When I deserialize the following JSON:

[  
   {  
      "id":"b21c43cc-3dd5-11e4-9dac-6274cc1fb069",
      "created_at":"Tue Sep 16 19:15:11 UTC 2014",
      "title":"Software Engineer",
      "location":"New York, NY",
      "type":"Full Time",
      "description":"<p><a href=\"http://www.beatport.com\">Beatport</a> is growing and we are looking for talented people who are passionate about what they do. We have built an amazing business around inspiring people to play with music and everyone&#39;s role here plays an important part in this.</p>\n\n<p>We are looking for a Software Engineer to join our team working on an exciting new music platform! We are looking for someone with a strong background in infrastructure as code, software development and full stack maintenance. This is a full time position in New York , NY.</p>\n\n<p><strong>Responsibilities:</strong></p>\n\n<ul>\n<li><p>Supporting dev and test infrastructure for multiple teams</p></li>\n<li><p>Development and maintenance of all aspects of our platform</p></li>\n<li><p>Configuration and tuning of supporting services such as MySQL and Apache Solr</p></li>\n<li><p>Application debugging and bug resolution</p></li>\n<li><p>Maintenance and configuration of servers and systems</p></li>\n</ul>\n\n<p><strong>You definitely:</strong></p>\n\n<ul>\n<li><p>Have experience deploying, maintaining, and developing Web applications</p></li>\n<li><p>Have proven experience with Python and PHP development and debugging</p></li>\n<li><p>Have proficiency with at least one configuration management framework (Chef, Salt, Ansible, Puppet, etc) and have opinions on their relative strengths and weaknesses</p></li>\n<li><p>Have a strong background in Linux system administration (CentOS, Scientific Linux, Ubuntu LTS)</p></li>\n<li><p>Understand the Unix philosophy</p></li>\n<li><p>Have opinions on the right way to do things, and are comfortable sharing them, respectfully and collaboratively</p></li>\n<li><p>Have experience with AWS and IaaS methodologies</p></li>\n</ul>\n\n<p><strong>It would be nice if you:</strong></p>\n\n<ul>\n<li><p>Have experience configuring, deploying, operating, and maintaining sophisticated relational databases, including replication</p></li>\n<li><p>Have an interest in, or want to learn more about, Continuous Integration and Continuous Deployment</p></li>\n</ul>\n\n<p><strong>Benefits:</strong></p>\n\n<p>We offer a competitive compensation package, plenty of vacation days, and VIP access to select music events. We hire people who love what they do and we make sure they have plenty of room for growth- we have an Employee Development Program which includes conferences and lab days.</p>\n\n<p>Moreover, you will work with a team that values collaboration and mentorship. We are always helping one another -someone almost always has the answer for any question you&#39;ve got.</p>\n\n<p><strong>How to apply:</strong></p>\n\n<p><a href=\"https://sfx.recruiterbox.com/jobs/fk0ct2/\">Please send a short note</a> introducing yourself and why this position appeals to you. Include a resume, and links to code samples and a link to a portfolio if you have one.  </p>\n\n<p><a href=\"https://sfx.recruiterbox.com/jobs/fk0ct2/\">Apply Here!</a></p>\n",
      "how_to_apply":"<p>Please apply here: <a href=\"https://sfx.recruiterbox.com/jobs/fk0ct2/\">https://sfx.recruiterbox.com/jobs/fk0ct2/</a></p>\n",
      "company":"Beatport",
      "company_url":"http://www.beatport.com/",
      "company_logo":"http://github-jobs.s3.amazonaws.com/7f298736-3dd5-11e4-8524-f5a395a38289.jpeg",
      "url":"http://jobs.github.com/positions/b21c43cc-3dd5-11e4-9dac-6274cc1fb069"
   },
   {  
      "id":"2d30eb44-3976-11e4-9687-d805defc2dfb",
      "created_at":"Thu Sep 11 05:40:46 UTC 2014",
      "title":"Senior Software Engineer (Professional Services)",
      "location":"New York, NY, US",
      "type":"Full Time",
      "description":"<p><a href='http://www.jobscore.com/jobs/crowdtwist/list'><img src='https://jobscore-assets.s3.amazonaws.com/account_logos/logo_b6dSPiUVer44qIiGak6IKg.png' /></a><br /><p><strong>About Us:</strong></p><p>CrowdTwist is an industry-leading provider of comprehensive multichannel loyalty and analytics solutions that drive engagement and incremental spend, leading to better customer data, stronger insight, and more personalized experiences. We are revolutionizing loyalty, helping top brands including Pepsi, Nestl\u00e9 Purina, L&#39;oreal, and Zumiez develop a deeper understanding of customers.</p><p><strong>About the Role:</strong></p><p>CrowdTwist is seeking a Senior Software Engineer for our growing Professional Services team based in New York City.\u00a0 In this role, you will work directly with our clients in supporting their loyalty programs and integrations with the CrowdTwist platform. \u00a0You will also assist by helping our clients bring new loyalty programs to life.</p><p>You will work directly with our Client Success team to ensure that our clients are making the most of the CrowdTwist platform. \u00a0Your work will span many areas of the CrowdTwist platform, including but not limited to:</p><ul>    <li>The consumer-facing loyalty program experience</li> <li>Our RESTful APIs</li>   <li>Back end integrations with social networks (Facebook, Twitter, Instagram, and Foursquare)</li>  <li>Our data-driven, client-customizable JavaScript SDK</li>    <li>Our client-facing content management applications</li></ul><p>Your work will likely be featured in television, print, consumer goods packaging, and online media. \u00a0The Professional Services team offers a fast-paced, high-energy environment that will surely keep you sharp and on your toes on a daily basis. \u00a0This role is for an engineer who loves to roll up their sleeves, dive in, and tackle any problem with speed and precision. \u00a0As the senior-most engineer on the Professional Services team, you will naturally gain authority over time, ultimately helping lead and mentor other engineers within the team.</p><p>In this role, you will work with a broad back end tech stack, including but not limited to:</p><ul> <li>PHP</li>    <li>Java</li>   <li>Oracle</li> <li>Node.js</li>    <li>Redis</li>  <li>Amazon Web Services</li>    <li>Various third-party services (Twilio, SendGrid, EdgeCast, etc.)</li></ul><p><strong>You:</strong></p><ul>   <li>Have a college degree in Computer Science or equivalent experience</li> <li>Have 7+ years of professional experience with one or more of: PHP, Ruby, Python, Java, C, C++</li>  <li>Know your way around a relational and/or NoSQL database</li>    <li>Write great code, view it as a craft, and love cranking out solid work</li></ul><p>At over one million lines of code, you\u2019ll be working with a large, highly-trafficked, scalable application. \u00a0Quality is of extreme importance to us, so you\u2019ll be writing unit and integration tests, which are used in our continuous integration process. \u00a0Our QA team will show you no mercy, either\u00a0\u2014 bring your \u201cA&quot; game.</p><p>You should be back end-focused, but our front end tech stack covers a wide range of JavaScript frameworks and related tools, such as:</p><ul>    <li>Angular</li>    <li>CoffeeScript</li>   <li>Backbone</li>   <li>Marionette</li> <li>Jade</li>   <li>Sass</li>   <li>jQuery</li></ul><p>Bonus points for front end development and systems administration experience.</p><p>We have a fun, generous company culture that&#39;s built on our fundamental principle that when you give more, you get more:</p><ul> <li>We offer a generous employee benefits package including stock options, fully paid medical, dental and vision plans for employees and their dependents</li>  <li>We bring toys to the office but still think the most fun thing to do is build product</li>  <li>We love getting to know one another outside the office through CrowdTwist sponsored events (volleyball and dodgeball teams, high speed go-karting, bowling, paintball, happy hour, etc.)</li>   <li>Provide lunches, drinks and snacks so our team can be hungry for other things</li>  <li>Learn from and teach each other at CrowdTwist U</li>    <li>Try to say what we mean and mean what we say</li></ul><p>If this sounds like you, get in touch. We&#39;re cool, relaxed, experienced, hard driving, changing our industry and looking for smart people like yourself to help tackle tough technical challenges.</p><p>This is a full-time position based in our New York City office. \u00a0Relocation assistance will be available if needed.</p><p>Take a peek inside our office here:\u00a0 <a href=\"https://www.themuse.com/companies/crowdtwist\">CrowdTwist Office</a></p> <img src=\"https://www.applytracking.com/track.aspx/5b0v1\"/></p>\n",
      "how_to_apply":"<p><a href=\"https://www.applytracking.com/track.aspx/5b0vB\">https://www.applytracking.com/track.aspx/5b0vB</a></p>\n",
      "company":"CrowdTwist",
      "company_url":null,
      "company_logo":null,
      "url":"http://jobs.github.com/positions/2d30eb44-3976-11e4-9687-d805defc2dfb"
   },
   {  
      "id":"b5093efc-3464-11e4-9264-6d8f547532a4",
      "created_at":"Thu Sep 04 18:54:40 UTC 2014",
      "title":"Senior Software Engineer - New York",
      "location":"New York, NY",
      "type":"Full Time",
      "description":"<p>Signpost is making it easier for local businesses to find new customers and keep them coming back. Our software-as-a-service platform automates the myriad tasks required to effectively market a small business online, freeing owners to focus on what they do best. We\u2019re backed by some of the smartest investors out there, like Google Ventures and Spark Capital, and our product is taking off, being used by thousands of businesses nationwide.</p>\n\n<p>Our <a href=\"http://www.signpost.com/engineering\">engineering team</a> is growing rapidly and we\u2019re looking for our next generation of technical leaders. Our culture is collaborative and emphasizes continuous improvement of ourselves, our systems, and our organization. If you\u2019re ready to join an outstanding and passionate team of engineers - not hackers - at a fast-moving startup where you can learn, grow, and have real technical ownership, you\u2019ve come to the right place.</p>\n\n<p>As a senior engineer, you\u2019ll be working on extending, improving and scaling systems and applications built primarily in Node.js. While we\u2019re not expecting you to be a Node expert when you walk in the door, we will expect you to:</p>\n\n<ul>\n<li>Work closely with product managers to define, scope, refine and drive the implementation of new features from conception to release</li>\n<li>Assist, lead and mentor junior engineers, making sure to be an available resource and play an active role in their professional development</li>\n<li>Perform diligent, timely code reviews for your peers and subordinates, while taking their feedback as an opportunity to learn and improve</li>\n<li>Architect systems for fault-tolerance, correctness, security and availability</li>\n<li>Participate in our interview process to select and attract outstanding talent</li>\n<li>Help engineering leadership to constantly improve</li>\n<li>Exemplify our culture of technical excellence</li>\n</ul>\n\n<p>You should:</p>\n\n<ul>\n<li>Have well-honed technical problem solving and analytical skills</li>\n<li>Be proficient in several high-level languages like Python, Ruby, Java, or C++</li>\n<li>Have a strong command of CS fundamentals - even if you don\u2019t use it every day</li>\n<li>Be able to articulate technical concepts clearly and concisely</li>\n<li>Have a solid mastery of software engineering tools and best practices</li>\n<li>Thoroughly understand persistence and networking concepts and technologies</li>\n<li>Have a deep mistrust of code without adequate test coverage</li>\n<li>Appreciate agility and pragmatism in software development</li>\n<li>Thrive in a startup environment - where we\u2019re making it up as we go</li>\n<li>Genuinely enjoy coaching and mentoring junior engineers</li>\n<li>Want to build a great product and love your job</li>\n<li>Be a team player with a can-do attitude</li>\n</ul>\n\n<p>We would love you to:</p>\n\n<ul>\n<li>Have an unquenchable thirst for new knowledge</li>\n<li>Always be striving to take your skills to the next level</li>\n<li>Understand how your code works down to the silicon</li>\n<li>Know that building secure systems is an endless battle</li>\n<li>Know that investing in developing solid tests pays for itself quickly</li>\n<li>Know that the root of all evil isn&#39;t love of money, it\u2019s premature optimization</li>\n<li>Be active in the open source community (send us your GitHub handle or tech blog)</li>\n</ul>\n\n<p>About Signpost</p>\n\n<p>Signpost gives local businesses the power to effortlessly build and manage customer relationships. Our platform automates and tracks all essential, cost-effective marketing interactions to deliver a positive, measurable return on investment. By providing comprehensive customer data and saving business owners time reaching new and existing customers with the right message at the right time, Signpost increases new and repeat sales.</p>\n\n<ul>\n<li>$15M funding (Google Ventures, Spark Capital, Scout Ventures, OpenView Ventures)</li>\n<li>200 employees</li>\n<li>Headquartered in New York with offices in Denver and Austin</li>\n<li>Powering millions of customer interactions monthly</li>\n<li>15% MoM revenue growth 2 years running</li>\n<li>Named one of America&#39;s Most Promising Companies by Forbes Magazine</li>\n</ul>\n",
      "how_to_apply":"<p><em>We expect successful candidates for this role will have at least five years of professional experience, with some coaching under their belt, but neither is a hard and fast requirement.</em></p>\n\n<p><em>We offer a competitive compensation package including benefits, equity options, and relocation assistance.</em></p>\n\n<p><em>Sound good? Apply <a href=\"https://hire.jobvite.com/j?aj=oISlZfwE&amp;s=GitHub\">here</a>!</em></p>\n",
      "company":"SIGNPOST",
      "company_url":null,
      "company_logo":"http://github-jobs.s3.amazonaws.com/e436a9b4-36d8-11e4-913f-958af59314cc.png",
      "url":"http://jobs.github.com/positions/b5093efc-3464-11e4-9264-6d8f547532a4"
   },
   {  
      "id":"cd87fa3c-7f55-11e3-967f-967ee3c991db",
      "created_at":"Sun Aug 31 09:00:24 UTC 2014",
      "title":"Senior Vulnerability Engineer",
      "location":"New York, NY",
      "type":"Full Time",
      "description":"<p><strong>The Role:</strong></p>\n\n<p>Trading System Enterprise Risk R&amp;D team provides Enterprise Level Market and Counterparty/Credit Risk management analytics to both Sell-side broker/dealers and Buy-Side Institutional Investment Managers and Hedge-Funds. Our product covers a wide variety of financial instrument types including but not limited to Fixed-Income, Interest Rate Swaps, Credit Default Swaps, Equity/Index/FX Options, and Structured Notes. We provide over 80 different Risk analytics in Market and Counterparty/Credit Risk to our customers and unlimited slice and dice of these analytics to allow them to actively manage firm wide risk.</p>\n\n<p>Trading System Enterprise Risk R&amp;D is looking for extremely driven software developer who has experience working with large scale software systems.  The successful candidate will be someone who is a self-starter with ownership attitude and a good communicator that is able to work with various business and R&amp;D teams.  This is excellent opportunity to get involved in shaping a new product line and become expert in the domain.</p>\n\n<p><strong>Required Technical Skills:</strong></p>\n\n<ul>\n<li>Experience managing or performing penetration testing on large enterprise Windows networks</li>\n<li>Experience overseeing the &quot;fix it&quot; phase of penetration testing</li>\n<li>Proven record of discovering, analyzing and exploiting application vulnerabilities and misconfigurations on Windows platforms</li>\n<li>Experience assessing and hardening Active Directory and Group Policy and knowledge of cutting edge security features of Microsoft Windows</li>\n<li>Ability to adapt existing exploits or advisories into robust exploits specific to the Bloomberg environment</li>\n<li>Familiarity with cutting edge trends in vulnerability analysis, exploit development and vulnerability discovery</li>\n<li>Intimate knowledge of Windows internals, especially those relevant to authentication and access control and other facets of security</li>\n<li>Proficiency in reading, writing, and auditing C or C++</li>\n<li>Proficiency in at least one scripting language (bash, perl, python, powershell, etc.)</li>\n<li>Experience with development of custom toolsets when necessary</li>\n<li>Strong Windows system administration and security assessment skills</li>\n<li>Familiarity with auditing techniques for MSRPC and ActiveX interfaces</li>\n<li>Familiarity with historical vulnerabilities in common operating systems (Windows, Solaris, Linux)</li>\n<li>Excellent understanding of secure data storage and transport implementations (PGP/SSH/SSL/IPSEC/etc.)</li>\n<li>Good understanding of low level TCP/IP networking and common protocols such as RADIUS, LDAP, KERBEROS, etc. </li>\n<li>Good understanding of secure network design</li>\n<li>Experience analyzing network traffic captures using tools such as tcpdump, wireshark, etc.</li>\n</ul>\n\n<p><strong>Required Non-Technical Skills:</strong></p>\n\n<ul>\n<li>Excellent analytical and problem solving skills</li>\n<li>Fast learner and interested in keeping current with research in the industry</li>\n<li>Work well in a small team, collaborative environment </li>\n<li>Good &quot;security instincts&quot;</li>\n<li>Ability to communicate complicated technical issues and the risks they pose to R&amp;D programmers, network engineers, system administrators and management</li>\n<li>Ability to conduct a security assessment from start to finish with minimal assistance</li>\n<li>Help programmers/administrators to develop fixes for issues discovered</li>\n<li>Put security risks in context in order to help meet business goals</li>\n</ul>\n\n<p><strong>Desired Skills:</strong></p>\n\n<ul>\n<li>Experience participating as a member of a red team</li>\n<li>Experience working with BMC Bladelogic and HP Openview</li>\n<li>Proficiency in using IDA Pro, Ollydbg/Immdbg, Windbg and/or other software analysis/debugging tools</li>\n<li>Proficiency in reading at least one dialect of assembly</li>\n<li>Familiarity with modern malware </li>\n</ul>\n\n<p><strong>The Company:</strong></p>\n\n<p>Bloomberg, the global business and financial information and news leader, gives influential decision makers a critical edge by connecting them to a dynamic network of information, people and ideas. The company&#39;s strength - delivering data, news and analytics through innovative technology, quickly and accurately - is at the core of the Bloomberg Professional service, which provides real time financial information to more than 315,000 subscribers globally. Bloomberg&#39;s enterprise solutions build on the company&#39;s core strength, leveraging technology to allow customers to access, integrate, distribute and manage data and information across organizations more efficiently and effectively. Through Bloomberg Law, Bloomberg Government, Bloomberg New Energy Finance and Bloomberg BNA, the company provides data, news and analytics to decision makers in industries beyond finance. And Bloomberg News, delivered through the Bloomberg Professional service, television, radio, mobile, the Internet and three magazines, Bloomberg Businessweek, Bloomberg Markets and Bloomberg Pursuits, covers the world with more than 2,400 news and multimedia professionals at more than 150 bureaus in 73 countries. Headquartered in New York, Bloomberg employs more than 15,000 people in 192 locations around the world.</p>\n\n<p>Bloomberg is an equal opportunities employer and we welcome applications from all backgrounds regardless of race, colour, religion, sex, ancestry, age, marital status, sexual orientation, gender identity, disability or any other classification protected by law.</p>\n",
      "how_to_apply":"<p><a href=\"http://goo.gl/bVbfra\">http://goo.gl/bVbfra</a></p>\n",
      "company":"Bloomberg L.P.",
      "company_url":"http://www.bloomberg.com",
      "company_logo":"http://github-jobs.s3.amazonaws.com/c5aaff4e-7f55-11e3-8555-d029b7deaa73.jpg",
      "url":"http://jobs.github.com/positions/cd87fa3c-7f55-11e3-967f-967ee3c991db"
   },
   {  
      "id":"dd2bf9ce-cde4-11e3-9c68-8a70a86372bb",
      "created_at":"Sun Aug 31 08:20:59 UTC 2014",
      "title":"Big Data Analytics Middleware Developer",
      "location":"New York, NY",
      "type":"Full Time",
      "description":"<p><strong>The Role:</strong></p>\n\n<p>Bloomberg is looking for a software developer who has experience in interactive analytics over Big Data to assist in the design and development of Bloomberg&#39;s Data Model and Query Platform. The goal is to structure data in forms that make it amenable for analysis and to provide a framework that enables interactive analytics over this data. This is a unique opportunity to join a talented group of engineers in start-up like environment, working with cutting-edge technologies on a greenfield project. In addition, this developer will serve as a liaison with the open source community directing the future evolution of the technology in ways that will benefit Bloomberg.</p>\n\n<p><strong>Big Data Experience Required:</strong></p>\n\n<ul>\n<li>Passion and interest for all things distributed - file systems, databases and computational frameworks</li>\n<li>A strong background in interactive query processing is a must; you can speak to the shortcomings of the map-reduce paradigm when it comes to interactive and iterative analytics and have thought of ways to overcome it.</li>\n<li>Hands on programming and development experience; excellent problem solving skills; proven technical leadership and communication skills</li>\n<li>Have a solid track record building large scale, fault-tolerant systems over the whole lifecycle of the project; you have spent significant time and effort observing large-scale systems in production and learning from it.</li>\n<li>Strong understanding of how the various technical pieces fit together: you can explain why you made certain architectural/design decisions and chose certain tools/products. </li>\n<li>Have made active contributions to open source projects like Hadoop, Berkeley Spark/Shark or Cassandra.</li>\n</ul>\n\n<p><strong>Technical Stack Required:</strong></p>\n\n<ul>\n<li>5+ years of programming experience (Java and Python on Linux)</li>\n<li>2+ years of hands-on experience with key-value store technologies such as HBase and/or Cassandra.</li>\n<li>2+ years of experience with the Hadoop stack - MapReduce, Cascading or Pig.</li>\n<li>1+ years of experience with analytic frameworks such as Impala, Phoenix (for HBase) and the Berkeley Analytics stack (Spark/Shark)</li>\n<li>Experience with data analysis in Python using frameworks such as Pandas and NumPy is a very strong plus.</li>\n<li>Prior experience with query processing in a distributed RDBMS such as Aster Data or Vertica is a plus.</li>\n</ul>\n\n<p><strong>The Company:</strong></p>\n\n<p>Bloomberg, the global business and financial information and news leader, gives influential decision makers a critical edge by connecting them to a dynamic network of information, people and ideas. The company&#39;s strength - delivering data, news and analytics through innovative technology, quickly and accurately - is at the core of the Bloomberg Professional service, which provides real time financial information to more than 315,000 subscribers globally. Bloomberg&#39;s enterprise solutions build on the company&#39;s core strength, leveraging technology to allow customers to access, integrate, distribute and manage data and information across organizations more efficiently and effectively. Through Bloomberg Law, Bloomberg Government, Bloomberg New Energy Finance and Bloomberg BNA, the company provides data, news and analytics to decision makers in industries beyond finance. And Bloomberg News, delivered through the Bloomberg Professional service, television, radio, mobile, the Internet and three magazines, Bloomberg Businessweek, Bloomberg Markets and Bloomberg Pursuits, covers the world with more than 2,400 news and multimedia professionals at more than 150 bureaus in 73 countries. Headquartered in New York, Bloomberg employs more than 15,000 people in 192 locations around the world.</p>\n\n<p>Bloomberg is an equal opportunities employer and we welcome applications from all backgrounds regardless of race, colour, religion, sex, ancestry, age, marital status, sexual orientation, gender identity, disability or any other classification protected by law.</p>\n",
      "how_to_apply":"<p>To Apply: <a href=\"http://goo.gl/5ZtMHI\">http://goo.gl/5ZtMHI</a></p>\n",
      "company":"Bloomberg L.P.",
      "company_url":"http://www.bloomberg.com",
      "company_logo":"http://github-jobs.s3.amazonaws.com/d33bffe0-cde4-11e3-818c-3e018090fdf7.jpg",
      "url":"http://jobs.github.com/positions/dd2bf9ce-cde4-11e3-9c68-8a70a86372bb"
   },
   {  
      "id":"f5fe9764-2e28-11e4-8258-73babcb423dd",
      "created_at":"Wed Aug 27 20:31:15 UTC 2014",
      "title":"Quality Assurance Analyst/Engineer",
      "location":"NYC, New York",
      "type":"Full Time",
      "description":"<p>Control Group is a privately held creative technology services firm. Whether improving or creating a product, service, or space, we help our visionary clients create more valuable and profitable connections with their stakeholders across digital and physical touchpoints.</p>\n\n<p>Based in New York City, Control Group has a full-stack of expertise, ranging from business consulting, user-experience design, software development, and engineering. Our clients include leaders in Civic, Real Estate Development, Technology, Hospitality, Institutional, and Retail industries.</p>\n\n<p>We are seeking a Quality Assurance Analyst/Engineer to join our team.</p>\n\n<p>At Control Group we believe that Quality Control starts when the project starts, not when the developers are finished. Quality Control Engineers are part of every project\u2019s core team from beginning to end. The Quality Control Engineer is responsible for:</p>\n\n<ol>\n<li> Participating in sprint planning meetings and daily standup meetings</li>\n<li> Planning the testing strategies and methods for projects, customizing the testing as needed</li>\n<li> Implementing tests</li>\n<li> Insuring overall excellence in all products we release</li>\n</ol>\n\n<p>Our application development group works mostly in PHP5 with Yii, Ruby on Rails 3 (also JRuby), iOS, and Android. We also hack on Node, Flex, JS, Java, HTML5, Cinder, sensor-based, and physical computing platforms.</p>\n\n<p>We work in a \u201cScrumBan\u201d style, collaborate intensely with clients, and all act as full-suite product tinkerers\u2014 from quality control to coders to designers to product managers to DevOPs. We believe in TDD/BDD and we make sure our CI stays green. We\u2019re obsessed with high quality and a great user experience. We\u2019re looking for Quality Control Engineers who don\u2019t want to just make sure it isn\u2019t broken, but want to make sure it\u2019s the best of its kind.</p>\n\n<p>Primary Job Responsibilities</p>\n\n<p>TESTING</p>\n\n<ul>\n<li>Test products to ensure that they meet requirements, conform to design specifications, and perform according to quality standards, including:</li>\n<li>Create, run and manage load, functional, and stress testing of new product features and products</li>\n<li>Regression testing of existing functionality</li>\n<li>Plan, write, execute, review, and update test plans, test cases, and scenarios to ensure that software meets or exceeds specified standards, development specifications, and client requirements</li>\n<li>All varieties of testing, including manual, automated, front-end, and back-end</li>\n<li>Report bugs and track status through a resolution system</li>\n<li>Build and maintain test tools and test applications to perform functional, load, and performance testing</li>\n<li>Work closely with other QC Engineers, Developers, Designers, DevOps, and Product Owners to ensure we deliver quality products to clients</li>\n<li>Act as a client and/or user advocate when appropriate and treat every project like it&#39;s your own. At Control Group, QC is not just about confirming that the user can use it, but also about making sure the user would want to use it</li>\n<li>Provide lower-cost, lower-risk, higher value, or other improving alternatives to proposed solutions</li>\n<li>Think strategically and share strategic insights with Product Owner, Scrum Master, and team</li>\n<li>Be awesome</li>\n</ul>\n\n<p>PERFORMANCE METRICS\nSuccess will be measured by:</p>\n\n<ul>\n<li>Quality of products</li>\n<li>Contributions to testing tool suite</li>\n<li>Happiness of clients and partners</li>\n</ul>\n\n<p>QUALIFICATIONS\nEligible candidates should possess more than a few of the following:</p>\n\n<ul>\n<li>Excellent written and oral communication skills. Really. R\u00e9sum\u00e9s with poor grammar, spelling, or punctuation will not be considered</li>\n<li>College degree. Computer Science, HCI, or Information Management are good, but not required</li>\n<li>5+ years as a Quality Control professional, or 2+ years in Quality Control along with 3+ year in another technical postion (e.g., Sysadmin, Engineer, Architect, etc</li>\n<li>Demonstrable web, mobile, embedded, or physical installation project experience</li>\n<li>GitHub (or similar) account for code review of patches and projects</li>\n<li>A good reputation and references in prior engagements</li>\n<li>Experience with at least a few of the following: PHP &amp; Yii; (J)Ruby &amp; Rails, Python &amp; Django, iOS, Cocoa, Android, HTML, CSS, JQuery, Flex, or Node.js</li>\n<li>Experience with automated testing tools such as XUnit, SoapUI, Selenium, Watij, Watir</li>\n<li>Understanding and appreciation of adatpive development methods (agile and lean)</li>\n<li>Experience with LINUX command-line environments (preferred)</li>\n<li>Superior organizational skills</li>\n<li>Strong analysis and autonomous problem discovery and solving skills.</li>\n<li>Strong attention to detail and a creative thinker</li>\n<li>Self-motivated (self-starter) and intellectually curious</li>\n<li>Ability to adapt and thrive in a dynamic environment, adjusting appropriately to changes to business, resource, or product priorities</li>\n</ul>\n\n<p>The job is NYC based, with minimal travel required (though we often have opportunities with large national and international clients). We would prefer not to relocate, and have zero interest in speaking with recruiters.</p>\n",
      "how_to_apply":"<p>Please Apply @ <a href=\"http://www.controlgroup.com/qa-analyst-engineer.html\">http://www.controlgroup.com/qa-analyst-engineer.html</a></p>\n",
      "company":"Control Group",
      "company_url":"http://www.controlgroup.com/index.html",
      "company_logo":"http://github-jobs.s3.amazonaws.com/e51bda06-2e28-11e4-8567-d8d86e13240d.png",
      "url":"http://jobs.github.com/positions/f5fe9764-2e28-11e4-8258-73babcb423dd"
   }
]

using the following class definition:

    public class Job
    {
        public string id { get; set; }
        public string created_at { get; set; }
        public string title { get; set; }
        public string location { get; set; }
        public string type { get; set; }
        public string description { get; set; }
        public string how_to_apply { get; set; }
        public string company { get; set; }
        public string company_url { get; set; }
        public string company_logo { get; set; }
        public string url { get; set; }
    }

the following exception is thrown

Input string was not in a correct format.

   at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
   at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
   at System.Int32.Parse(String s, NumberStyles style)
   at NetJSON.NetJSON.DecodeJSONString(Char* ptr, Int32& index)
   at Job\[\]Class.ExtractString(Char* , Int32& )
   at Job\[\]Class.SetJob(Char* , Int32& , Job , String )
   at Job\[\]Class.CreateClassOrDictJob(Char* , Int32& )
   at Job\[\]Class.ExtractJob(Char* , Int32& )
   at Job\[\]Class.CreateListJobArray(Char* , Int32& )
   at Job\[\]Class.ReadJobArray(String )
   at Job\[\]Class.Deserialize(String )
   at NetJSON.NetJSON.Deserialize[T](String json)

has exited with code -1073741819 (0xc0000005) 'Access violation'

.
'WindowsFormsApplication4.vshost.exe' (CLR v4.0.30319: WindowsFormsApplication4.vshost.exe): Loaded 'c:\users\pc\documents\visual studio 2013\Projects\WindowsFormsApplication4\WindowsFormsApplication4\bin\Debug\WindowsFormsApplication4.exe'. Symbols loaded.
'WindowsFormsApplication4.vshost.exe' (CLR v4.0.30319: WindowsFormsApplication4.vshost.exe): Loaded 'c:\users\pc\documents\visual studio 2013\Projects\WindowsFormsApplication4\WindowsFormsApplication4\bin\Debug\NetJSON.dll'. Symbols loaded.
'WindowsFormsApplication4.vshost.exe' (CLR v4.0.30319: WindowsFormsApplication4.vshost.exe): Loaded 'MyHouseClass'.
A first chance exception of type 'System.Reflection.AmbiguousMatchException' occurred in mscorlib.dll
A first chance exception of type 'System.TypeInitializationException' occurred in NetJSON.dll
'WindowsFormsApplication4.vshost.exe' (CLR v4.0.30319: WindowsFormsApplication4.vshost.exe): Loaded 'C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
The program '[5656] WindowsFormsApplication4.vshost.exe' has exited with code -1073741819 (0xc0000005) 'Access violation'.

values of Dictionary<string, object> serialized incorrectly

var dict = new Dictionary<string, object>();
dict.Add("0", 0);
dict.Add("1", "1");
dict.Add("2", new List<int> { 2 } );
dict.Add("3", new Dictionary<string,object> {{"3", "3"}});
Console.WriteLine(NetJSON.Serialize(dict));

produces {"0":0,"1":"1","2":System.Collections.Generic.List1[System.Int32],"3":System.Collections.Generic.Dictionary2[System.String,System.Object]}

Dictionaries aren't serializing to valid JSON

I have a dictionary SkusByPKID serializing as such:
...
"SkusByPKID": {
218492: {
"SKUID": 218492,
"SKU": "F52525000130X30",
"RetailPrice": 39.99,
"ProductID": 674,
"ProductGroupID": 654,
"Description": "Men's Propper Lightweight Tactical Pants - Black - 30X30",
"UPC": "788029397928",
"MSRP": 49.99
},
218493: {
"SKUID": 218493,
"SKU": "F52525000130X32",
"RetailPrice": 39.99,
"ProductID": 674,
"ProductGroupID": 654,
"Description": "Men's Propper Lightweight Tactical Pants - Black - 30X32",
"UPC": "788029397935",
"MSRP": 49.99
},
}, ....

It is missing double quotes around the keys. It should look like this:
...
"SkusByPKID": {
"218492": {
"SKUID": 218492,
"SKU": "F52525000130X30",
"RetailPrice": 39.99,
"ProductID": 674,
"ProductGroupID": 654,
"Description": "Men's Propper Lightweight Tactical Pants - Black - 30X30",
"UPC": "788029397928",
"MSRP": 49.99
},
"218493": {
"SKUID": 218493,
"SKU": "F52525000130X32",
"RetailPrice": 39.99,
"ProductID": 674,
"ProductGroupID": 654,
"Description": "Men's Propper Lightweight Tactical Pants - Black - 30X32",
"UPC": "788029397935",
"MSRP": 49.99
},
},
...

Thanks!

Issue trying to serialize Booleans

var json = "{ "BoolValue": false, "StringValue": "Neeraj" }";
var res = NetJSON.NetJSON.Deserialize(typeof(CompositeType), json);

res here has the BoolValue property set to true.

The serialization to Bool also fails if the bool value is put under qoutes.

While JSON.Net from Newtonsoft.Json does it correctly
var res1 = JsonConvert.DeserializeObject(json);

Deserialization hangs

I wanted to deserialize 100MB JSON available here:
https://github.com/amacal/Quality.Json.Performance/blob/1bc3e95f74060209e07d24ab145c5a81172400f0/src/Quality.Json.Performance/Resources/Large.7z?raw=true

into the following C# class:

    public class Large
    {
        public Text all_ascii { get; set; }
        public Text all_unicode { get; set; }
        public Html some_html { get; set; }
        public Data json_data { get; set; }

        public string nothing { get; set; }

        public class Text
        {
            public string here { get; set; }
        }

        public class Html
        {
            public string credits { get; set; }
        }

        public class Data
        {
            public string nothing { get; set; }
        }
    }

I waited 10 minutes. Jil needs 1 second.

Deserialized object is incorrect (Case #1)

When I deserialize the following JSON:

{
    "glossary": {
        "title": "example glossary",
        "GlossDiv": {
            "title": "S",
            "GlossList": {
                "GlossEntry": {
                    "ID": "SGML",
                    "SortAs": "SGML",
                    "GlossTerm": "Standard Generalized Markup Language",
                    "Acronym": "SGML",
                    "Abbrev": "ISO 8879:1986",
                    "GlossDef": {
                        "para": "A meta-markup language, used to create markup languages such as DocBook.",
                        "GlossSeeAlso": ["GML", "XML"]
                    },
                    "GlossSee": "markup"
                }
            }
        }
    }
}

I receive wrong object, found difference:

Begin Differences (1 differences):
Types [GlossaryDiv,null], Item Expected.glossary.glossdiv != Actual.glossary.glossdiv, Values (Quality.Json.Performance.Resources.GlossaryContainer+GlossaryDiv,(null))
End Differences (Maximum of 100 differences shown).

Invalid input causing deserialize to never return

   [TestFixture]
   sealed public class NetJsonTf
   {
       sealed public class TestObj
       {
           public string str { get; set; }
       }

       [Test]
       public void Test()
       {
           var inp = "{str:\"any\"}";

           Func<TestObj, string> serialize = NetJSON.NetJSON.Serialize<TestObj>;
           Func<string, TestObj> deserialize = NetJSON.NetJSON.Deserialize<TestObj>;

           var status = new TestObj { str = "any" };
           var ser = serialize(status);

           var status1 = deserialize(inp); // infinite loop?

           Console.WriteLine(ser);
       }
   }

Deserialization fails (or is incorrect) for classes which contain Nullable<> or ?

    public class TestMe
    {
        public string a { get; set; }
        public string b { get; set; }
        public int? c { get; set; }
        public int? d { get; set; }
    }

                var testMe = new TestMe
                {
                    a = "Test",
                    c = 0
                };
                if (useNetJSON == true)
                {
                    vals[j] = NetJSON.NetJSON.Serialize(testMe);
                    var obj = NetJSON.NetJSON.Deserialize(typeof(TestMe), vals[j]);
                    testMe = (TestMe)obj;
                }

afterwards in the new testMe object c will be null rather than 0.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.