@JsonProperty @JsonIgnoreProperties

时间:2017-12-18 07:32:34

标签: java spring-boot jackson

I was not able to add this new filed to my constructor which is not there in json and its throwing below error could someone please help me on this. I have tried two annotation @JsonIgnoreProperties and @JsonIgnore and @JsonIgnoreProperties(ignoreUnknown = true) and class level and constructor level

Below are my code and error details follow the same

  using System;
    using System.Text;
    using System.Windows.Forms;
    using System.Text.RegularExpressions;
    using LibUsbDotNet;
    using LibUsbDotNet.Main;
    using System.Threading;

    namespace UsbLibDotNetTest
    {

        public partial class Form1 : Form
        {
            public static UsbDevice MyUsbDevice;

            #region SET YOUR USB Vendor and Product ID!

            public static UsbDeviceFinder MyUsbFinder = new UsbDeviceFinder(0x0590, 0x005B);
            #endregion
            public Form1()
            {
                InitializeComponent();
            }

            private void Form1_Load(object sender, EventArgs e)
            {
                ErrorCode ec = ErrorCode.None;

                try
                {
                    // Find and open the usb device.
                    MyUsbDevice = UsbDevice.OpenUsbDevice(MyUsbFinder);

                    // If the device is open and ready
                    if (MyUsbDevice == null) throw new Exception("Device Not Found.");

                    // If this is a "whole" usb device (libusb-win32, linux libusb)
                    // it will have an IUsbDevice interface. If not (WinUSB) the 
                    // variable will be null indicating this is an interface of a 
                    // device.
                    IUsbDevice wholeUsbDevice = MyUsbDevice as IUsbDevice;
                    if (!ReferenceEquals(wholeUsbDevice, null))
                    {
                        // This is a "whole" USB device. Before it can be used, 
                        // the desired configuration and interface must be selected.

                        // Select config #1
                        wholeUsbDevice.SetConfiguration(1);

                        // Claim interface #0.
                        wholeUsbDevice.ClaimInterface(0);
                    }

                    // open read endpoint 1.
                    UsbEndpointReader reader = MyUsbDevice.OpenEndpointReader(ReadEndpointID.Ep01);

                    // open write endpoint 1.
                    UsbEndpointWriter writer = MyUsbDevice.OpenEndpointWriter(WriteEndpointID.Ep01);

                    // Remove the exepath/startup filename text from the begining of the CommandLine.
                    //string cmdLine = Regex.Replace(
                    //    Environment.CommandLine, "^\".+?\"^.*? |^.*? ", "", RegexOptions.Singleline);

                    string cmdLine = @"@01WD300000295B*"+(char)13;

                    if (!String.IsNullOrEmpty(cmdLine))
                    {
                        int bytesWritten;
                        ec = writer.Write(Encoding.Default.GetBytes(cmdLine), 2000, out bytesWritten);
                        if (ec != ErrorCode.None) throw new Exception(UsbDevice.LastErrorString);

                        byte[] readBuffer = new byte[1024];
                        while (ec == ErrorCode.None)
                        {
                            int bytesRead;
                            Thread.Sleep(10000);
                            // If the device hasn't sent data in the last 100 milliseconds,
                            // a timeout error (ec = IoTimedOut) will occur. 
                            ec = reader.Read(readBuffer, 10000, out bytesRead);

                            if (bytesRead == 0) throw new Exception("No more bytes!");

                            // Write that output to the console.
                            Console.Write(Encoding.Default.GetString(readBuffer, 0, bytesRead));
                        }

                        Console.WriteLine("\r\nDone!\r\n");
                    }
                    else
                        throw new Exception("Nothing to do.");
                }
                catch (Exception ex)
                {
                    Console.WriteLine();
                    Console.WriteLine((ec != ErrorCode.None ? ec + ":" : String.Empty) + ex.Message);
                }
                finally
                {
                    if (MyUsbDevice != null)
                    {
                        if (MyUsbDevice.IsOpen)
                        {
                            // If this is a "whole" usb device (libusb-win32, linux libusb-1.0)
                            // it exposes an IUsbDevice interface. If not (WinUSB) the 
                            // 'wholeUsbDevice' variable will be null indicating this is 
                            // an interface of a device; it does not require or support 
                            // configuration and interface selection.
                            IUsbDevice wholeUsbDevice = MyUsbDevice as IUsbDevice;
                            if (!ReferenceEquals(wholeUsbDevice, null))
                            {
                                // Release interface #0.
                                wholeUsbDevice.ReleaseInterface(0);
                            }

                            MyUsbDevice.Close();
                        }
                        MyUsbDevice = null;

                        // Free usb resources
                        UsbDevice.Exit();

                    }

                    // Wait for user input..
                //   Console.ReadKey();
                }
            }
        }
    }

//create

public static class Location {
        private String a;
        @Wither private int b;
        @Wither private int c;
        @Wither private int d;
        @Wither  private int newFiled;  //which not there in json

1 个答案:

答案 0 :(得分:1)

You can try adding elemItems = driver.find_elements_by_css_selector(menuItemSelector) for element in elements: if element.text == "export": elemItems[1].click() annotation on field level. Or you can remove it from constructor and use setter method to assign value.

@JsonIgnore