Autor Thema: Frage zu <xe:viewJsonService>  (Gelesen 2247 mal)

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.885
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Frage zu <xe:viewJsonService>
« am: 20.10.17 - 19:13:23 »
Das ist eine XPage- Control, um eine View im Json- Format anzuzeigen. Die hat die Property systemColumns.

Lasse ich systemColumns WEG, dann zeigt er mir alle System- Columns an. Gebe ich z.B. 0 an, dann zeigt er mir eben die System Column 0 (in dem Fall die NoteID) an.
Was muss ich tun, damit er mir GAR KEINE systemColumns rendert, sondern nur die tatsächlich vorhandenen Columns?

ein systemColumns=false gibt es nicht, und Doku finde ich auch keine...
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.885
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Frage zu <xe:viewJsonService>
« Antwort #1 am: 23.10.17 - 09:44:21 »
ups, falsches Unterforum... bitte verschieben in "Entwicklung"...
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline HH

  • Senior Mitglied
  • ****
  • Beiträge: 339
  • Geschlecht: Männlich
Re: Frage zu <xe:viewJsonService>
« Antwort #2 am: 23.10.17 - 11:50:55 »
@entryid scheint immer generiert zu werden, auch wenn man einen Leerstring bei systemColumns eingibt:
Code
<xe:this.systemColumns><![CDATA[#{javascript:""}]]></xe:this.systemColumns>

Man könnte versuchen diese Werte client-seitig zu entfernen.

Ich verwende aber statt dessen i.d.R. customRestService und generiere mit die Daten dann z.B. wie folgt:
Code
	@SuppressWarnings("unchecked")
	public String getEntitiesAsJson( ArrayList<Person> persons ) {
		JSONArray jArray = new JSONArray() ;
		try {
			for( Integer i = 0 ; i < persons.size() ; i++ ) {
				jArray.add( this.getEntityAsJsonObject( persons.get(i))) ;
			}
		} catch (Exception e) {
			this.logger.logError( e) ;
		}
		return jArray.toJSONString() ;
	}
	
	@SuppressWarnings("unchecked")
	private JSONObject getEntityAsJsonObject( Person p ) {
		JSONObject jObj = new JSONObject() ;
		try {
			jObj.put( "id", p.getId() ) ;
			jObj.put( "lastname", p.getLastname() ) ;
			jObj.put( "firstname", p.getFirstname() ) ;
			jObj.put( "praefix", p.getPraefix() ) ;
			jObj.put( "suffix", p.getSuffix() ) ;
		} catch (Exception e) {
			this.logger.logError( e) ;
		}
		return jObj ;
	}

Das ist relativ schnell gemacht und recht flexibel.

Gruß
Hubert

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.885
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Frage zu <xe:viewJsonService>
« Antwort #3 am: 23.10.17 - 12:52:46 »
Ja, das ist natürlich eine Möglichkeit. Ich habe jetzt aber mal beim Consumer meiner Daten angefragt, ihn stört das zusätzliche Attribut nicht, deshalb lasse ich es erst mal so. Deinen Code werde ich mir trotzdem für zukünftige Anforderungen mal merken. Danke!
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz