<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Teknikdagboken &#187; JavaScript</title>
	<atom:link href="http://teknikdagboken.se/category/programmering/webbprogrammering/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://teknikdagboken.se</link>
	<description>En blogg om teknik i vardagen</description>
	<lastBuildDate>Tue, 15 Nov 2011 19:43:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Serialisera objekt till json med camelCase</title>
		<link>http://teknikdagboken.se/2011/03/04/serialisera-objekt-till-json-med-camelcase/</link>
		<comments>http://teknikdagboken.se/2011/03/04/serialisera-objekt-till-json-med-camelcase/#comments</comments>
		<pubDate>Fri, 04 Mar 2011 12:27:26 +0000</pubDate>
		<dc:creator>lilja</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[Webbprogrammering]]></category>
		<category><![CDATA[camelcase]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[webbprogrammering]]></category>

		<guid isPermaLink="false">http://teknikdagboken.se/?p=165</guid>
		<description><![CDATA[För att serialisera ett objekt till json i MVC3 kan man använda Json(), men då skapas objektet som serialiseras med fel namn i JavaScript där camelCase används. För att fixa detta kan man använda DataContractJsonSerializer. Här är min lösning: public class JsonHelper { public static string Serialize&#60;T&#62;(T obj) { var serializer = new DataContractJsonSerializer(obj.GetType()); var [...]


No related posts.

Relaterade inlägg tack vare <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>För att serialisera ett objekt till json i MVC3 kan man använda Json(), men då skapas objektet som serialiseras med fel namn i JavaScript där <a href="http://en.wikipedia.org/wiki/CamelCase">camelCase</a> används. För att fixa detta kan man använda DataContractJsonSerializer. Här är min lösning:</p>
<pre name="code" class="csharp">
public class JsonHelper
{
    public static string Serialize&lt;T&gt;(T obj)
    {
        var serializer = new DataContractJsonSerializer(obj.GetType());
        var ms = new MemoryStream();
        serializer.WriteObject(ms, obj);
        string retVal = Encoding.UTF8.GetString(ms.ToArray());
        ms.Dispose();
        return retVal;
    }

    public static T Deserialize&lt;T&gt;(string json)
    {
        T obj = Activator.CreateInstance&lt;T&gt;();
        var ms = new MemoryStream(Encoding.Unicode.GetBytes(json));
        var serializer = new DataContractJsonSerializer(obj.GetType());
        obj = (T)serializer.ReadObject(ms);
        ms.Close();
        ms.Dispose();
        return obj;
    }
}
</pre>
<p>Objektet som skall serialiseras behöver några extra taggar på sig ex:</p>
<pre name="code" class="csharp">
[DataContract]
public class Person
{
    [DataMember(Name="firstName")]
    public string FirstName { get; set; }

    [DataMember(Name="lastName")]
    public string LastName { get; set; }
}
</pre>
<p>För att serialisera/deserialisera skriver man så här:</p>
<pre name="code" class="csharp">
var myPerson = new Person()
{
    FirstName = "John",
    LastName = "Doe"
};

// Serialize
string json = JSONHelper.Serialize&lt;Person&gt;(myPerson);

// Deserialize
myPerson = JSONHelper.Deserialize&lt;Person&gt;(json);
</pre>
<p>Koden är i princip identisk med <a href="http://pietschsoft.com/post/2008/02/NET-35-JSON-Serialization-using-the-DataContractJsonSerializer.aspx">http://pietschsoft.com/post/2008/02/NET-35-JSON-Serialization-using-the-DataContractJsonSerializer.aspx</a>. Jag har bara ändrat från default encoding till utf8.</p>


<p>No related posts.</p>
<p>Relaterade inlägg tack vare <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://teknikdagboken.se/2011/03/04/serialisera-objekt-till-json-med-camelcase/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Litebox som anpassar sig efter webbläsarfönstret</title>
		<link>http://teknikdagboken.se/2010/02/07/litebox-som-anpassar-sig-efter-webblasarfonstret/</link>
		<comments>http://teknikdagboken.se/2010/02/07/litebox-som-anpassar-sig-efter-webblasarfonstret/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 22:29:58 +0000</pubDate>
		<dc:creator>lilja</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Webbprogrammering]]></category>
		<category><![CDATA[bildvisning]]></category>
		<category><![CDATA[Lightbox]]></category>
		<category><![CDATA[Litebox]]></category>

		<guid isPermaLink="false">http://teknikdagboken.se/?p=97</guid>
		<description><![CDATA[Jag tycker att bildvisning med hjälp av Lightbox2 / Litebox är riktigt snyggt på webbsidor och har nyligen installerat det på en av mina hemsidor. Jag hittade då ett problem där applikationen inte tar hänsyn till hur stora bilderna är relaterat till webbläsaren vilken ibland gjorde att inte hela bilderna syntes. När man använder dessa [...]


No related posts.

Relaterade inlägg tack vare <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>Jag tycker att bildvisning med hjälp av <a href="http://www.huddletogether.com/projects/lightbox2/">Lightbox2</a> / <a href="http://www.doknowevil.net/litebox/">Litebox</a> är riktigt snyggt på webbsidor och har nyligen installerat det på en av mina hemsidor.</p>
<p>Jag hittade då ett problem där applikationen inte tar hänsyn till hur stora bilderna är relaterat till webbläsaren vilken ibland gjorde att inte hela bilderna syntes. När man använder dessa skript får man inte heller någon skrollbar så man kunde inte bläddra för att se hela bilden.</p>
<p>Enkelt löst tänkte jag och googlade vidare efter liknande applikation som gör just detta, men jag hittade inget bra och bestämde mig för att lösa detta själv.</p>
<p>Det som behöver göras är att lägga in ny funktionalitet i litebox-1.0.js för att ta hänsyn till storleken på webbläsarfönstret. Förändringen som behövs är liten och enkel att införa. Byt bara ut</p>
<pre name="code" class="js">
imgPreloader.onload=function(){
	Element.setSrc('lightboxImage', imageArray[activeImage][0]);
	myLightbox.resizeImageContainer(imgPreloader.width, imgPreloader.height);
}
</pre>
<p>mot</p>
<pre name="code" class="js">
imgPreloader.onload=function(){
	Element.setSrc('lightboxImage', imageArray[activeImage][0]);

	var innerWidth = arrayPageSize[2];
	var innerHeight = arrayPageSize[3];

	if(imgPreloader.width>(innerWidth-100) || imgPreloader.height>(innerHeight-130)){
		if(imgPreloader.width>(innerWidth-100)){
			var width=(innerWidth-100);
			var height=imgPreloader.height/(imgPreloader.width/(innerWidth-100));
			if(height>(innerHeight-130) ){
				var height=(innerHeight-130);
				var width=imgPreloader.width/(imgPreloader.height/(innerHeight-130));
			}
		} else if(imgPreloader.height>(innerHeight-130)){
			var height=(innerHeight-130);
			var width=imgPreloader.width/(imgPreloader.height/(innerHeight-130));
		}

		height = Math.floor(height);
		width = Math.floor(width);

		document.getElementById('lightboxImage').height=height;
		document.getElementById('lightboxImage').width=width;
		document.getElementById('lightboxImage').style.width=width;
		document.getElementById('lightboxImage').style.height=height;
		myLightbox.resizeImageContainer(width, height);
	} else {
		document.getElementById('lightboxImage').height=imgPreloader.height;
		document.getElementById('lightboxImage').width=imgPreloader.width;
		document.getElementById('lightboxImage').style.width=imgPreloader.width;
		document.getElementById('lightboxImage').style.height=imgPreloader.height;
		myLightbox.resizeImageContainer(imgPreloader.width, imgPreloader.height);
	}
}
</pre>
<p>så skall det fungera.</p>
<p>Skillnaden mellan Litebox och Lightbox är liten och ligger främst i vilket bakomliggande JavaScript-ramverk som används, vilket gör att detta därför går att applicera på båda applikationerna.</p>


<p>No related posts.</p>
<p>Relaterade inlägg tack vare <a href='http://yarpp.org'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://teknikdagboken.se/2010/02/07/litebox-som-anpassar-sig-efter-webblasarfonstret/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

