2013-08-30 7 views
16

Sto cercando di utilizzare la funzionalità speciale del passato a vs 2012 per generare la classe C# per i miei dati Json. Ho scaricato Json.New da NewtonSoft da Nuget e poi ho aggiunto una nuova classe .cs copia i miei dati json negli appunti ma quando vado a Modifica-> Incolla speciale -> Posso solo vedere: Incolla XML As Classes solo il Incolla Json come funzione di Classi non viene visualizzata. Eventuali suggerimenti? voi Grazie in anticipoCome mostrare "paste Json class" in visual studio 2012 quando si fa clic su Incolla speciale?

Questo è quello che sto ottenendo e si ricorda che ho installato Newtonsoft.Json già:

http://icms.indevcogroup.com/uploads/untitled.png

risposta

18

Ho creato un nuovo progetto, installato Newtonsoft.Json e ha aggiunto una classe .

Se avete il vostro file di classe aperta, copiare i dati JSON e scegliere Modifica -> Incolla speciale vedrete entrambe le opzioni:

Paste Special with Json Option

Se si dispone di un altro tipo di file aperto (ad esempio, app.config), si vede solo "Incolla JSON come come classi" (ed è in grigio)

Paste Special - 1 option and greyed out

sembra un po 'traballante anche se - a volte ho dovuto ricopiare i dati prima che rivelerebbe .

Prova a) ricopiare i dati b) a giocare con quello che le finestre che hai aperto c) reinstallare l'estensione

+0

Il problema è quando clicco su Incolla speciale ottengo Incolla XML come Classi no Json. Si prega di controllare il link che ho aggiunto. Grazie – Sam

+0

Hai provato a rimuovere e riaggiungere il pacchetto? – Gareth

+0

Sì, ma non ha funzionato. C'è qualche altro software che posso usare per ottenere i miei dati JSON e poi metterli nella cache all'interno della mia applicazione? il mio obiettivo è applicare una cache di dati locale nell'app di Windows 8 – Sam

0

tenta di installare l'aggiornamento per Visual Studio Ho installato l'aggiornamento v4 e ora ho un'opzione " incollare JSON come classi"

11

Quando si seleziona la Modifica> Incolla speciale menu, mentre nel codice di un file di classe, assicurarsi che il progetto di Visual Studio che il file di classe è sotto ha la sua serie 'Obiettivo Framework' a:

.NET Framework 3.5 + per 'incollare JSON come Classi

.NET Framework 4.5 + per' Incolla XML come Classi

Altrimenti non appaiono tali opzioni.

L'impostazione "Framework di destinazione" si trova in Proprietà progetto > Applicazione.

2

Ho avuto lo stesso problema. Stavo selezionando la classe da Solution Explorer e ricevendo solo l'opzione XML. Finalmente ho messo la mia carota direttamente nelle bretelle ricurve del public class, quindi ho navigato in Modifica -> "Incolla speciale".

Modifica: correzione, che genera una classe all'interno della classe. Invece, inserirò il mio punto di inserimento da qualche parte nello spazio dei nomi."Incolla classi JSON" quindi genera una classe pubblica Rootobject {} e altre classi pubbliche che sono nidificate negli appunti JSON.

1

Ho avuto lo stesso problema e ho scoperto che dovresti avere un testo JSON valido negli appunti.

passaggi per farlo funzionare:

  1. Installare Essentials Web per la versione di VS (Visual Studio). Web Essentials Download page
  2. Creare un file di classe vuoto in VS.
  3. Copia testo JSON valido negli appunti.
  4. Vedrete ora il "Incolla JSON come classi" in Modifica -> Incolla speciale -> Incolla JSON come Classi di ingresso

Esempio:

{ 
     "firstName":"John", 
     "lastName":"Smith", 
     "age":25, 
     "address":{ 
      "streetAddress":"21 2nd Street", 
      "city":"New York", 
      "state":"NY", 
      "postalCode":"10021" 
     }, 
     "phoneNumber":[ 
      { 
      "type":"home", 
      "number":"212 555-1234" 
      }, 
      { 
      "type":"fax", 
      "number":"646 555-4567" 
      } 
     ] 
    } 

Esempio di output:

public class Rootobject 
    { 
     public string firstName { get; set; } 
     public string lastName { get; set; } 
     public int age { get; set; } 
     public Address address { get; set; } 
     public Phonenumber[] phoneNumber { get; set; } 
    } 

    public class Address 
    { 
     public string streetAddress { get; set; } 
     public string city { get; set; } 
     public string state { get; set; } 
     public string postalCode { get; set; } 
    } 

    public class Phonenumber 
    { 
     public string type { get; set; } 
     public string number { get; set; } 
    } 
Problemi correlati